1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jiyangj-universal-parser

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
test_namespace.py 2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
JIYANG-PLUS Отправлено 25.08.2021 10:43 a0373db
from xml.parsers.expat import ParserCreate, XMLParserType
# xml_data = """
# <root>
# <h:table xmlns:h="http://www.w3.org/TR/html4/">
# <h:tr>
# <h:td>Apples</h:td>
# <abcdef>哈哈哈哈</abcdef>
# <h:td>Bananas</h:td>
# </h:tr>
# </h:table>
# <f:table xmlns:f="http://www.w3cschool.cc/furniture">
# <f:name>African Coffee Table</f:name>
# <f:width>80</f:width>
# <f:length>120</f:length>
# </f:table>
# </root>
# """
xml_data = """
<root xmlns:p="Person" xmlns:a="Animal">
<p:police id="007">警察</p:police>
<p:doctor id="001">医生</p:doctor>
<a:dog id="002">狗狗</a:dog>
</root>
"""
def parse_odict(xml_data: str):
def onXmlDeclHandler(version: int, encoding, standalone: int): ...
def onStartElementHandler(name: str, attrs):
print('onStartElementHandler:', f'"{name}"', attrs)
def onEndElementHandler(name: str):
print('onEndElementHandler:', f'"{name}"')
def onStartCdataSectionHandler(): ...
def onEndCdataSectionHandler(): ...
def onCommentHandler(data: str): ...
def onCharacterDataHandler(data: str): ...
# def onStartNamespaceDeclHandler(prefix, uri):
# print('onStartNamespaceDeclHandler:', prefix, uri)
# def onEndNamespaceDeclHandler(prefix):
# print('onEndNamespaceDeclHandler:', prefix)
xmlParser: XMLParserType = ParserCreate(namespace_separator='-')
xmlParser.XmlDeclHandler = onXmlDeclHandler
xmlParser.StartElementHandler = onStartElementHandler
xmlParser.EndElementHandler = onEndElementHandler
xmlParser.CommentHandler = onCommentHandler
xmlParser.CharacterDataHandler = onCharacterDataHandler
xmlParser.StartCdataSectionHandler = onStartCdataSectionHandler
xmlParser.EndCdataSectionHandler = onEndCdataSectionHandler
# xmlParser.StartNamespaceDeclHandler = onStartNamespaceDeclHandler
# xmlParser.EndNamespaceDeclHandler = onEndNamespaceDeclHandler
xmlParser.buffer_text = True
xmlParser.ordered_attributes = True
xmlParser.Parse(xml_data, 1)
parse_odict(xml_data)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jiyangj-universal-parser.git
git@api.gitlife.ru:oschina-mirror/jiyangj-universal-parser.git
oschina-mirror
jiyangj-universal-parser
jiyangj-universal-parser
master