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

OSCHINA-MIRROR/jiyangj-universal-parser

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
test_shortcut.py 2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
JIYANG-PLUS Отправлено 25.08.2021 10:43 a0373db
import UniversalParser as UP
from UniversalParser import SM
xml_data = """
<root>
<cells>
<!-- 注释 -->
<cell id="cell1">111</cell>
<cell id="cell2">222</cell>
<cell id="cell3">
<![CDATA[<CDATA>]]>
</cell>
</cells>
<a>move1</a>
<a>move2</a>
<test>
<pp id="dog">
things
</pp>
<pp id="cat" name="lili">
你好,莉莉
</pp>
</test>
<des id="abc">
<person name="j1">
<age>12</age>
</person>
</des>
<des id="def">
<person name="j2">
<age>100</age>
</person>
</des>
</root>
"""
manager = UP.parse_xml(
xml_data
, combine_cdata=False
, analysis_mode=UP.AnalysisMode.RECOMMEND
, include_comment=True
)
manager.SEARCH_ATTR_KEY = 'id'
node = ((manager @ "def") | "age") ^ 1
node = ((manager @ {'id': 'def'}) | "age") ^ 1
print(node & SM.text) # 输出文本
print(node & SM.attr_names) # 获取所有属性名称
print(node & SM.tag) # 获取标签名
print(node & SM.ancestor) # 获取祖先节点
print(node & SM.descendants) # 获取子孙节点
print(node & SM.siblings) # 获取兄弟节点
print(node & SM.children) # 获取孩子节点
print(node & SM.parent) # 获取父节点
# node = manager @ {'id':'cat'} @ {'name':'lili'} ^ 1
# print(manager.find_text(node)) # 你好,莉莉
# node = (manager | 'cell') ^ 2
# print(node)
# nodes = list(manager | 'a') # 根据 tag 查找
# print(nodes[0].text_) # move1
# nodes = list(manager @ {'id': 'cell1'}) # 根据属性查找
# print(nodes[0].text_) # 111
# nodes = list(manager / '111') # 根据文本域内容查找
# print(nodes[0].id) # cell1
# nodes = list(manager % '<CDATA>') # 配合 combine_cdata=False 使用
# print(nodes[0].id) # cell3
# nodes = list(manager // '注释') # 根据注释查找
# print(nodes[0].cell[1].text_) # 222
# manager.SEARCH_ATTR_KEY = 'name'
# node = manager @ 'lili' ^ 1
# print(node & SM.text)

Опубликовать ( 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