Пример XML:добавления к значениям атрибутов из XML-с помощью Python
<response version-api="2.0">
<value>
<books>
<book available="20" id="1" tags="">
<title></title>
<author id="1" tags="Joel">Manuel De Cervantes</author>
</book>
<book available="14" id="2" tags="Jane">
<title>Catcher in the Rye</title>
<author id="2" tags="">JD Salinger</author>
</book>
<book available="13" id="3" tags="">
<title></title>
<author id="3">Lewis Carroll</author>
</book>
<book available="5" id="4" tags="Harry">
<title>Don</title>
<author id="4">Manuel De Cervantes</author>
</book>
</books>
</value>
</response>
Я хочу, чтобы добавить строковое значение моего выбора для всех атрибутов, называемых «метки». Это означает, имеет ли атрибут «теги» значение или нет, а также атрибуты находятся на разных уровнях структуры xml. Я пробовал метод findall(), но я продолжаю получать сообщение об ошибке «IndexError: list index out the range». Это код, который я до сих пор что немного не хватает, но я выдыхаться за то, что еще мне нужно напечатать ...
splitter = etree.XMLParser(strip_cdata=False)
xmldoc = etree.parse(os.path.join(root, xml_file), splitter).getroot()
for child in xmldoc:
if child.tag != 'response':
allDescendants = list(etree.findall())
for child in allDescendants:
if hasattr(child, 'tags'):
child.attribute["tags"].value = "someString"
спасибо, что это сработало! – CommittedEel