Не думаю, что ты можешь.
От родителя element
вам необходимо
for subelement in element.GetElementsByTagName("field"):
if subelement.hasAttribute("frame.len"):
do_something()
Реакция на ваш комментарий от 11 марта, если структура ваших документов стабильна и не содержит неприятных сюрпризов (например, угловые скобкивнутри атрибутов), вы можете попробовать немыслимое и использовать регулярное выражение.Это не рекомендуемая практика, но она может сработать и будет намного проще, чем фактический анализ файла.Я признаю, что иногда делал это сам.Еще не ослеп.
Так что в вашем случае вы могли бы (при условии, что тег <field>
не занимает несколько строк):
xmlfile = open("myfile.xml")
for line in xmlfile:
match = re.search(r'<field\s+name="frame.len"\s+([^>]+)/>', line):
if match:
result = match.group(1)
do_something(result)
Если тег <field>
может занимать несколько строк, вы можете попробовать загрузить весь файл в виде простого текста в память и затем отсканировать его на совпадения:
filedump = open("myfile.xml").read()
for match in re.finditer(r'<field\s+name="frame.len"\s+([^>]+)/>', filedump):
result = match.group(1)
do_something(result)
В обоих случаях result
будет содержать атрибутыкроме frame.len
.Регулярное выражение предполагает, что frame.len
всегда является первым атрибутом внутри тега.