구조화된 마크업 처리 도구
*************************

파이썬은 다양한 형태의 구조화된 데이터 마크업을 다루는 다양한 모듈을
지원합니다. 여기에는 SGML (Standard Generalized Markup Language) 및
HTML (Hypertext Markup Language) 을 다루는 모듈과 XML (Extensible
Markup Language) 작업을 위한 여러 인터페이스가 포함됩니다.

* "html" --- HyperText Markup Language support

  * "escape()"

  * "unescape()"

* "html.parser" --- Simple HTML and XHTML parser

  * "HTMLParser"

  * HTML 구문 분석기 응용 프로그램 예제

  * "HTMLParser" 메서드

    * "feed()"

    * "close()"

    * "reset()"

    * "getpos()"

    * "get_starttag_text()"

    * "handle_starttag()"

    * "handle_endtag()"

    * "handle_startendtag()"

    * "handle_data()"

    * "handle_entityref()"

    * "handle_charref()"

    * "handle_comment()"

    * "handle_decl()"

    * "handle_pi()"

    * "unknown_decl()"

  * 예제

* "html.entities" --- Definitions of HTML general entities

  * "html5"

  * "entitydefs"

  * "name2codepoint"

  * "codepoint2name"

* XML 처리 모듈

  * XML 취약점

  * The "defusedxml" Package

* "xml.etree.ElementTree" --- The ElementTree XML API

  * 자습서

    * XML 트리와 엘리먼트

    * XML 구문 분석하기

    * 비 블로킹 구문 분석을 위한 풀(pull) API

    * 흥미로운 엘리먼트 찾기

    * XML 파일 수정하기

    * XML 문서 구축하기

    * 이름 공간이 있는 XML 구문 분석하기

  * XPath 지원

    * 예

    * 지원되는 XPath 문법

  * 레퍼런스

    * 함수

      * "canonicalize()"

      * "Comment()"

      * "dump()"

      * "fromstring()"

      * "fromstringlist()"

      * "indent()"

      * "iselement()"

      * "iterparse()"

      * "parse()"

      * "ProcessingInstruction()"

      * "register_namespace()"

      * "SubElement()"

      * "tostring()"

      * "tostringlist()"

      * "XML()"

      * "XMLID()"

  * XInclude 지원

    * 예

  * 레퍼런스

    * 함수

      * "default_loader()"

      * "include()"

    * Element 객체

      * "Element"

        * "tag"

        * "text"

        * "tail"

        * "attrib"

        * "clear()"

        * "get()"

        * "items()"

        * "keys()"

        * "set()"

        * "append()"

        * "extend()"

        * "find()"

        * "findall()"

        * "findtext()"

        * "insert()"

        * "iter()"

        * "iterfind()"

        * "itertext()"

        * "makeelement()"

        * "remove()"

    * ElementTree 객체

      * "ElementTree"

        * "_setroot()"

        * "find()"

        * "findall()"

        * "findtext()"

        * "getroot()"

        * "iter()"

        * "iterfind()"

        * "parse()"

        * "write()"

    * QName 객체

      * "QName"

    * TreeBuilder 객체

      * "TreeBuilder"

        * "close()"

        * "data()"

        * "end()"

        * "start()"

        * "comment()"

        * "pi()"

        * "doctype()"

        * "start_ns()"

        * "end_ns()"

      * "C14NWriterTarget"

    * XMLParser 객체

      * "XMLParser"

        * "close()"

        * "feed()"

        * "flush()"

    * XMLPullParser 객체

      * "XMLPullParser"

        * "feed()"

        * "flush()"

        * "close()"

        * "read_events()"

    * 예외

      * "ParseError"

        * "code"

        * "position"

* "xml.dom" --- The Document Object Model API

  * 모듈 내용

    * "registerDOMImplementation()"

    * "getDOMImplementation()"

    * "EMPTY_NAMESPACE"

    * "XML_NAMESPACE"

    * "XMLNS_NAMESPACE"

    * "XHTML_NAMESPACE"

  * DOM의 객체

    * DOMImplementation 객체

      * "hasFeature()"

      * "createDocument()"

      * "createDocumentType()"

    * Node 객체

      * "nodeType"

      * "parentNode"

      * "attributes"

      * "previousSibling"

      * "nextSibling"

      * "childNodes"

      * "firstChild"

      * "lastChild"

      * "localName"

      * "prefix"

      * "namespaceURI"

      * "nodeName"

      * "nodeValue"

      * "hasAttributes()"

      * "hasChildNodes()"

      * "isSameNode()"

      * "appendChild()"

      * "insertBefore()"

      * "removeChild()"

      * "replaceChild()"

      * "normalize()"

      * "cloneNode()"

    * NodeList 객체

      * "item()"

      * "length"

    * DocumentType 객체

      * "publicId"

      * "systemId"

      * "internalSubset"

      * "name"

      * "entities"

      * "notations"

    * Document 객체

      * "documentElement"

      * "createElement()"

      * "createElementNS()"

      * "createTextNode()"

      * "createComment()"

      * "createProcessingInstruction()"

      * "createAttribute()"

      * "createAttributeNS()"

      * "getElementsByTagName()"

      * "getElementsByTagNameNS()"

    * Element 객체

      * "tagName"

      * "getElementsByTagName()"

      * "getElementsByTagNameNS()"

      * "hasAttribute()"

      * "hasAttributeNS()"

      * "getAttribute()"

      * "getAttributeNode()"

      * "getAttributeNS()"

      * "getAttributeNodeNS()"

      * "removeAttribute()"

      * "removeAttributeNode()"

      * "removeAttributeNS()"

      * "setAttribute()"

      * "setAttributeNode()"

      * "setAttributeNodeNS()"

      * "setAttributeNS()"

    * Attr 객체

      * "name"

      * "localName"

      * "prefix"

      * "value"

    * NamedNodeMap 객체

      * "length"

      * "item()"

    * Comment 객체

      * "data"

    * Text와 CDATASection 객체

      * "data"

    * ProcessingInstruction 객체

      * "target"

      * "data"

    * 예외

      * "DOMException"

      * "DomstringSizeErr"

      * "HierarchyRequestErr"

      * "IndexSizeErr"

      * "InuseAttributeErr"

      * "InvalidAccessErr"

      * "InvalidCharacterErr"

      * "InvalidModificationErr"

      * "InvalidStateErr"

      * "NamespaceErr"

      * "NotFoundErr"

      * "NotSupportedErr"

      * "NoDataAllowedErr"

      * "NoModificationAllowedErr"

      * "SyntaxErr"

      * "WrongDocumentErr"

  * 규격 준수

    * 형 매핑

    * 접근자 메서드

* "xml.dom.minidom" --- Minimal DOM implementation

  * "parse()"

  * "parseString()"

  * DOM 객체

    * "unlink()"

    * "writexml()"

    * "toxml()"

    * "toprettyxml()"

  * DOM 예제

  * minidom과 DOM 표준

* "xml.dom.pulldom" --- Support for building partial DOM trees

  * "PullDom"

  * "SAX2DOM"

  * "parse()"

  * "parseString()"

  * "default_bufsize"

  * DOMEventStream 객체

    * "DOMEventStream"

      * "getEvent()"

      * "expandNode()"

      * "reset()"

* "xml.sax" --- Support for SAX2 parsers

  * "make_parser()"

  * "parse()"

  * "parseString()"

  * "SAXException"

  * "SAXParseException"

  * "SAXNotRecognizedException"

  * "SAXNotSupportedException"

  * SAXException 객체

    * "getMessage()"

    * "getException()"

* "xml.sax.handler" --- Base classes for SAX handlers

  * "ContentHandler"

  * "DTDHandler"

  * "EntityResolver"

  * "ErrorHandler"

  * "LexicalHandler"

  * "feature_namespaces"

  * "feature_namespace_prefixes"

  * "feature_string_interning"

  * "feature_validation"

  * "feature_external_ges"

  * "feature_external_pes"

  * "all_features"

  * "property_lexical_handler"

  * "property_declaration_handler"

  * "property_dom_node"

  * "property_xml_string"

  * "all_properties"

  * ContentHandler 객체

    * "setDocumentLocator()"

    * "startDocument()"

    * "endDocument()"

    * "startPrefixMapping()"

    * "endPrefixMapping()"

    * "startElement()"

    * "endElement()"

    * "startElementNS()"

    * "endElementNS()"

    * "characters()"

    * "ignorableWhitespace()"

    * "processingInstruction()"

    * "skippedEntity()"

  * DTDHandler 객체

    * "notationDecl()"

    * "unparsedEntityDecl()"

  * EntityResolver 객체

    * "resolveEntity()"

  * ErrorHandler 객체

    * "error()"

    * "fatalError()"

    * "warning()"

  * LexicalHandler Objects

    * "comment()"

    * "startDTD()"

    * "endDTD()"

    * "startCDATA()"

    * "endCDATA()"

* "xml.sax.saxutils" --- SAX Utilities

  * "escape()"

  * "unescape()"

  * "quoteattr()"

  * "XMLGenerator"

  * "XMLFilterBase"

  * "prepare_input_source()"

* "xml.sax.xmlreader" --- Interface for XML parsers

  * "XMLReader"

  * "IncrementalParser"

  * "Locator"

  * "InputSource"

  * "AttributesImpl"

  * "AttributesNSImpl"

  * XMLReader 객체

    * "parse()"

    * "getContentHandler()"

    * "setContentHandler()"

    * "getDTDHandler()"

    * "setDTDHandler()"

    * "getEntityResolver()"

    * "setEntityResolver()"

    * "getErrorHandler()"

    * "setErrorHandler()"

    * "setLocale()"

    * "getFeature()"

    * "setFeature()"

    * "getProperty()"

    * "setProperty()"

  * IncrementalParser 객체

    * "feed()"

    * "close()"

    * "reset()"

  * Locator 객체

    * "getColumnNumber()"

    * "getLineNumber()"

    * "getPublicId()"

    * "getSystemId()"

  * InputSource 객체

    * "setPublicId()"

    * "getPublicId()"

    * "setSystemId()"

    * "getSystemId()"

    * "setEncoding()"

    * "getEncoding()"

    * "setByteStream()"

    * "getByteStream()"

    * "setCharacterStream()"

    * "getCharacterStream()"

  * "Attributes" 인터페이스

    * "getLength()"

    * "getNames()"

    * "getType()"

    * "getValue()"

  * "AttributesNS" 인터페이스

    * "getValueByQName()"

    * "getNameByQName()"

    * "getQNameByName()"

    * "getQNames()"

* "xml.parsers.expat" --- Fast XML parsing using Expat

  * "ExpatError"

  * "error"

  * "XMLParserType"

  * "ErrorString()"

  * "ParserCreate()"

  * XMLParser 객체

    * "Parse()"

    * "ParseFile()"

    * "SetBase()"

    * "GetBase()"

    * "GetInputContext()"

    * "ExternalEntityParserCreate()"

    * "SetParamEntityParsing()"

    * "UseForeignDTD()"

    * "SetReparseDeferralEnabled()"

    * "GetReparseDeferralEnabled()"

    * "buffer_size"

    * "buffer_text"

    * "buffer_used"

    * "ordered_attributes"

    * "specified_attributes"

    * "ErrorByteIndex"

    * "ErrorCode"

    * "ErrorColumnNumber"

    * "ErrorLineNumber"

    * "CurrentByteIndex"

    * "CurrentColumnNumber"

    * "CurrentLineNumber"

    * "XmlDeclHandler()"

    * "StartDoctypeDeclHandler()"

    * "EndDoctypeDeclHandler()"

    * "ElementDeclHandler()"

    * "AttlistDeclHandler()"

    * "StartElementHandler()"

    * "EndElementHandler()"

    * "ProcessingInstructionHandler()"

    * "CharacterDataHandler()"

    * "UnparsedEntityDeclHandler()"

    * "EntityDeclHandler()"

    * "NotationDeclHandler()"

    * "StartNamespaceDeclHandler()"

    * "EndNamespaceDeclHandler()"

    * "CommentHandler()"

    * "StartCdataSectionHandler()"

    * "EndCdataSectionHandler()"

    * "DefaultHandler()"

    * "DefaultHandlerExpand()"

    * "NotStandaloneHandler()"

    * "ExternalEntityRefHandler()"

  * ExpatError 예외

    * "code"

    * "lineno"

    * "offset"

  * 예

  * 콘텐츠 모델 기술

  * Expat 에러 상수

    * "codes"

    * "messages"

    * "XML_ERROR_ASYNC_ENTITY"

    * "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF"

    * "XML_ERROR_BAD_CHAR_REF"

    * "XML_ERROR_BINARY_ENTITY_REF"

    * "XML_ERROR_DUPLICATE_ATTRIBUTE"

    * "XML_ERROR_INCORRECT_ENCODING"

    * "XML_ERROR_INVALID_TOKEN"

    * "XML_ERROR_JUNK_AFTER_DOC_ELEMENT"

    * "XML_ERROR_MISPLACED_XML_PI"

    * "XML_ERROR_NO_ELEMENTS"

    * "XML_ERROR_NO_MEMORY"

    * "XML_ERROR_PARAM_ENTITY_REF"

    * "XML_ERROR_PARTIAL_CHAR"

    * "XML_ERROR_RECURSIVE_ENTITY_REF"

    * "XML_ERROR_SYNTAX"

    * "XML_ERROR_TAG_MISMATCH"

    * "XML_ERROR_UNCLOSED_TOKEN"

    * "XML_ERROR_UNDEFINED_ENTITY"

    * "XML_ERROR_UNKNOWN_ENCODING"

    * "XML_ERROR_UNCLOSED_CDATA_SECTION"

    * "XML_ERROR_EXTERNAL_ENTITY_HANDLING"

    * "XML_ERROR_NOT_STANDALONE"

    * "XML_ERROR_UNEXPECTED_STATE"

    * "XML_ERROR_ENTITY_DECLARED_IN_PE"

    * "XML_ERROR_FEATURE_REQUIRES_XML_DTD"

    * "XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING"

    * "XML_ERROR_UNBOUND_PREFIX"

    * "XML_ERROR_UNDECLARING_PREFIX"

    * "XML_ERROR_INCOMPLETE_PE"

    * "XML_ERROR_XML_DECL"

    * "XML_ERROR_TEXT_DECL"

    * "XML_ERROR_PUBLICID"

    * "XML_ERROR_SUSPENDED"

    * "XML_ERROR_NOT_SUSPENDED"

    * "XML_ERROR_ABORTED"

    * "XML_ERROR_FINISHED"

    * "XML_ERROR_SUSPEND_PE"

    * "XML_ERROR_RESERVED_PREFIX_XML"

    * "XML_ERROR_RESERVED_PREFIX_XMLNS"

    * "XML_ERROR_RESERVED_NAMESPACE_URI"

    * "XML_ERROR_INVALID_ARGUMENT"

    * "XML_ERROR_NO_BUFFER"

    * "XML_ERROR_AMPLIFICATION_LIMIT_BREACH"
