结构化标记处理工具¶
Python 支持各种模块,以处理各种形式的结构化数据标记。 这包括使用标准通用标记语言(SGML)和超文本标记语言(HTML)的模块,以及使用可扩展标记语言(XML)的几个接口。
html--- 超文本标记语言支持html.parser--- 简单的 HTML 和 XHTML 解析器HTMLParser- HTML 解析器的示例程序
HTMLParser方法HTMLParser.feed()HTMLParser.close()HTMLParser.reset()HTMLParser.getpos()HTMLParser.get_starttag_text()HTMLParser.handle_starttag()HTMLParser.handle_endtag()HTMLParser.handle_startendtag()HTMLParser.handle_data()HTMLParser.handle_entityref()HTMLParser.handle_charref()HTMLParser.handle_comment()HTMLParser.handle_decl()HTMLParser.handle_pi()HTMLParser.unknown_decl()
- 例子
html.entities--- HTML 一般实体的定义- XML处理模块
xml.etree.ElementTree--- ElementTree XML API- 教程
- XPath支持
- 参考
- XInclude 支持
- 参考
- 函数
- 元素对象
ElementElement.tagElement.textElement.tailElement.attribElement.clear()Element.get()Element.items()Element.keys()Element.set()Element.append()Element.extend()Element.find()Element.findall()Element.findtext()Element.insert()Element.iter()Element.iterfind()Element.itertext()Element.makeelement()Element.remove()
- ElementTree 对象
- QName 对象
- TreeBuilder 对象
- XMLParser对象
- XMLPullParser对象
- 异常
xml.dom--- 文档对象模型 API- 模块内容
- DOM 中的对象
- DOMImplementation 对象
- 节点对象
Node.nodeTypeNode.parentNodeNode.attributesNode.previousSiblingNode.nextSiblingNode.childNodesNode.firstChildNode.lastChildNode.localNameNode.prefixNode.namespaceURINode.nodeNameNode.nodeValueNode.hasAttributes()Node.hasChildNodes()Node.isSameNode()Node.appendChild()Node.insertBefore()Node.removeChild()Node.replaceChild()Node.normalize()Node.cloneNode()
- 节点列表对象
- 文档类型对象
- Document 对象
- 元素对象
Element.tagNameElement.getElementsByTagName()Element.getElementsByTagNameNS()Element.hasAttribute()Element.hasAttributeNS()Element.getAttribute()Element.getAttributeNode()Element.getAttributeNS()Element.getAttributeNodeNS()Element.removeAttribute()Element.removeAttributeNode()Element.removeAttributeNS()Element.setAttribute()Element.setAttributeNode()Element.setAttributeNodeNS()Element.setAttributeNS()
- Attr 对象
- NamedNodeMap 对象
- 注释对象
- Text 和 CDATASection 对象
- ProcessingInstruction 对象
- 异常
- 一致性
xml.dom.minidom--- 最小化的 DOM 实现xml.dom.pulldom--- 支持构建部分 DOM 树xml.sax--- 支持 SAX2 解析器xml.sax.handler--- SAX 处理句柄的基类ContentHandlerDTDHandlerEntityResolverErrorHandlerLexicalHandlerfeature_namespacesfeature_namespace_prefixesfeature_string_interningfeature_validationfeature_external_gesfeature_external_pesall_featuresproperty_lexical_handlerproperty_declaration_handlerproperty_dom_nodeproperty_xml_stringall_properties- ContentHandler 对象
ContentHandler.setDocumentLocator()ContentHandler.startDocument()ContentHandler.endDocument()ContentHandler.startPrefixMapping()ContentHandler.endPrefixMapping()ContentHandler.startElement()ContentHandler.endElement()ContentHandler.startElementNS()ContentHandler.endElementNS()ContentHandler.characters()ContentHandler.ignorableWhitespace()ContentHandler.processingInstruction()ContentHandler.skippedEntity()
- DTDHandler 对象
- EntityResolver 对象
- ErrorHandler 对象
- LexicalHandler 对象
xml.sax.saxutils--- SAX 工具集xml.sax.xmlreader--- 用于 XML 解析器的接口XMLReaderIncrementalParserLocatorInputSourceAttributesImplAttributesNSImpl- XMLReader 对象
XMLReader.parse()XMLReader.getContentHandler()XMLReader.setContentHandler()XMLReader.getDTDHandler()XMLReader.setDTDHandler()XMLReader.getEntityResolver()XMLReader.setEntityResolver()XMLReader.getErrorHandler()XMLReader.setErrorHandler()XMLReader.setLocale()XMLReader.getFeature()XMLReader.setFeature()XMLReader.getProperty()XMLReader.setProperty()
- IncrementalParser 对象
- Locator 对象
- InputSource 对象
Attributes接口AttributesNS接口
xml.parsers.expat--- 使用 Expat 的快速 XML 解析ExpatErrorerrorXMLParserTypeErrorString()ParserCreate()- XMLParser对象
xmlparser.Parse()xmlparser.ParseFile()xmlparser.SetBase()xmlparser.GetBase()xmlparser.GetInputContext()xmlparser.ExternalEntityParserCreate()xmlparser.SetParamEntityParsing()xmlparser.UseForeignDTD()xmlparser.buffer_sizexmlparser.buffer_textxmlparser.buffer_usedxmlparser.ordered_attributesxmlparser.specified_attributesxmlparser.ErrorByteIndexxmlparser.ErrorCodexmlparser.ErrorColumnNumberxmlparser.ErrorLineNumberxmlparser.CurrentByteIndexxmlparser.CurrentColumnNumberxmlparser.CurrentLineNumberxmlparser.XmlDeclHandler()xmlparser.StartDoctypeDeclHandler()xmlparser.EndDoctypeDeclHandler()xmlparser.ElementDeclHandler()xmlparser.AttlistDeclHandler()xmlparser.StartElementHandler()xmlparser.EndElementHandler()xmlparser.ProcessingInstructionHandler()xmlparser.CharacterDataHandler()xmlparser.UnparsedEntityDeclHandler()xmlparser.EntityDeclHandler()xmlparser.NotationDeclHandler()xmlparser.StartNamespaceDeclHandler()xmlparser.EndNamespaceDeclHandler()xmlparser.CommentHandler()xmlparser.StartCdataSectionHandler()xmlparser.EndCdataSectionHandler()xmlparser.DefaultHandler()xmlparser.DefaultHandlerExpand()xmlparser.NotStandaloneHandler()xmlparser.ExternalEntityRefHandler()
- ExpatError 异常
- 示例
- 内容模型描述
- Expat 错误常量
codesmessagesXML_ERROR_ASYNC_ENTITYXML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REFXML_ERROR_BAD_CHAR_REFXML_ERROR_BINARY_ENTITY_REFXML_ERROR_DUPLICATE_ATTRIBUTEXML_ERROR_INCORRECT_ENCODINGXML_ERROR_INVALID_TOKENXML_ERROR_JUNK_AFTER_DOC_ELEMENTXML_ERROR_MISPLACED_XML_PIXML_ERROR_NO_ELEMENTSXML_ERROR_NO_MEMORYXML_ERROR_PARAM_ENTITY_REFXML_ERROR_PARTIAL_CHARXML_ERROR_RECURSIVE_ENTITY_REFXML_ERROR_SYNTAXXML_ERROR_TAG_MISMATCHXML_ERROR_UNCLOSED_TOKENXML_ERROR_UNDEFINED_ENTITYXML_ERROR_UNKNOWN_ENCODINGXML_ERROR_UNCLOSED_CDATA_SECTIONXML_ERROR_EXTERNAL_ENTITY_HANDLINGXML_ERROR_NOT_STANDALONEXML_ERROR_UNEXPECTED_STATEXML_ERROR_ENTITY_DECLARED_IN_PEXML_ERROR_FEATURE_REQUIRES_XML_DTDXML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSINGXML_ERROR_UNBOUND_PREFIXXML_ERROR_UNDECLARING_PREFIXXML_ERROR_INCOMPLETE_PEXML_ERROR_XML_DECLXML_ERROR_TEXT_DECLXML_ERROR_PUBLICIDXML_ERROR_SUSPENDEDXML_ERROR_NOT_SUSPENDEDXML_ERROR_ABORTEDXML_ERROR_FINISHEDXML_ERROR_SUSPEND_PEXML_ERROR_RESERVED_PREFIX_XMLXML_ERROR_RESERVED_PREFIX_XMLNSXML_ERROR_RESERVED_NAMESPACE_URIXML_ERROR_INVALID_ARGUMENTXML_ERROR_NO_BUFFERXML_ERROR_AMPLIFICATION_LIMIT_BREACH