提取XML数据的速度比嵌套循环更快?
我有一个具有以下格式的XML文件:
<JMdict>
...
<entry>
<ent_seq>2232410</ent_seq>
<k_ele>
<keb>筆おろし</keb>
</k_ele>
<k_ele>
<keb>筆下ろし</keb>
</k_ele>
<k_ele>
<keb>筆降ろし</keb>
<ke_inf>&iK;</ke_inf>
</k_ele>
<r_ele>
<reb>ふでおろし</reb>
</r_ele>
<sense>
<pos>&n;</pos>
<pos>&vs;</pos>
<gloss>using a new brush for the first time</gloss>
</sense>
<sense>
<pos>&n;</pos>
<pos>&vs;</pos>
<gloss>doing something for the first time</gloss>
</sense>
<sense>
<pos>&n;</pos>
<pos>&vs;</pos>
<gloss>man losing his virginity (esp. to an older woman)</gloss>
</sense>
</entry>
...
</JMdict>
这基本上是电子日语/英语词典。有很多入口标签。我正在尝试创建一个搜索函数,该功能将根据任何keb,reb和“光泽”标签中的文本值返回ent_seq号码。
我有鲍泽代码可以执行我需要做的事情,但有些慢(438毫秒)。然后,该SEQ号码将用于在另一个数据集中查找数据,如果我打算在Web应用中使用它,我希望它更快。有办法吗?
from xml.etree import ElementTree as ET
tree = ET.parse("../../resources/JMdict_e.xml")
root = tree.getroot()
search_term = '筆おろし'
seq_tags = []
for dictionary in root.iter('JMdict'):
for child in dictionary:
for grandchild in child:
if grandchild.tag == 'ent_seq':
ent_seq = grandchild.text
for greatgrandchild in grandchild:
if greatgrandchild.tag in ['keb','reb','gloss']:
if greatgrandchild.text == search_term:
seq_tags.append(ent_seq)
print(seq_tags)
任何帮助和技巧将不胜感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用XPATH在同一表达式中搜索超过1个元素(可能是2个以上条件的一个和/或表达式)
Using xpath to search on more than 1 element in the same expression (could be an AND/OR expression with more than 2 conditions)