Python ElementTree найти дочерний элемент с определенным текстовым значением - PullRequest
0 голосов
/ 15 ноября 2011

Я долго искал.Есть ли способ напрямую получить дочерний элемент на основе текстового значения тега?

Например:

 <a>
   <b>
       <c>h</c>
   </b>
   <b>
       <c>j</c>
   </b>
</a>

И сказать, что я хочу получить дочерний элемент, чей текст "c"значение == j.Есть ли способ сделать это, кроме как получить все дочерние элементы "b", пройти через них и проверить значение c?

1 Ответ

5 голосов
/ 15 ноября 2011

Если вы используете lxml, вы можете использовать выражение XPath //c[text()='j']

import lxml.etree as et

doc = '''
<a>
   <b>
       <c>h</c>
   </b>
   <b>
       <c>j</c>
   </b>
</a>
'''

tree = et.fromstring(doc)

tree.xpath("/a/b/c[text()='j']")

Этот ответ актуален: Как мне сопоставить содержимое элемента в XPath (lxml)?

...