我希望从xml上的evernote note中获取与en-todo元素相关的所有文本。是否有任何函数可以从根用一行获取具有特定名称的所有标记?
我尝试过root.findall(“en-todo”),但它返回nothings。
典型的evernote笔记可以包含具有不同嵌套级别的en-todo元素。 En-todo标签通常位于span标签内,尽管有时整个堆栈的文本和文本都可以在span标签内。它使解析变得相当复杂 有没有简单的方法从xml中删除所有span标签并保留其子节点?你能建议其他解决方案吗?
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-note SYSTEM
"http://xml.evernote.com/pub/enml2.dtd">
<en-note>
<div>
<en-todo></en-todo>
<span>one task</span>
</div>
<div><span><br clear="none"/></span></div>
<div><span>
<en-todo></en-todo>
<span>second task</span>
<br clear="none"/>
<span><en-todo></en-todo>third task</span>
<br clear="none"/>
<span><en-todo></en-todo>forth task</span>
<br clear="none"/>
<span><en-todo></en-todo>fifth task</span>
</span></div>
...
答案 0 :(得分:0)
通过xpath获取:
root.findall('.//en-todo')
这将在任何嵌套级别找到所有en-todo
个元素。