Я пытаюсь найти все div
s, чье class
имя - это "фраза", а имя class
родительского узла не является "дополнительным".
Так что в Python я использую
for phrase in entry.iterfind(".//div[@class='phrase'] and ./parent::div[@class!='extras']]"):
, чтобы сделать это.
Но это дает мне ошибку:
SyntaxError: prefix 'parent' not found in prefix map
И я изменил приведенный выше код на
for phrase in entry.iterfind(".//div[@class='phrase'] and ./..[@class!='extras']]"):
На этот раз ошибка была
Traceback (most recent call last):File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/xml/etree/ElementPath.py", line 272, in iterfind
selector = _cache[cache_key] KeyError: (".//div[@class='phrase'] and ./..[@class!='extras']]", None)
Часть XML-структур выглядит следующим образом:
<div class="phrases">
<div class="label">Phrases</div>
<div class="phrase">
……
<div class="phrasal verbs">
<div class="label">Phrases</div>
<div class="phrase">
……
<div class="extras">
<h2>test test</h2>
<div class="phrase">
……
Я использую библиотеку Python 3.7 и xml.etree
в Mac OS 10.14.