Это своего рода дополнение к более раннему вопросу asking the same things for the text values in an XML node.Как заставить XPath вернуть «None» в Python, если атрибут не найден?
lxml может протестировать существование тега XPath (например, //book/*
) в приведенном примере. С этим я могу проверить существование узла и вернуть None
, если его нет, и вернуть текстовое значение, если оно существует.
Однако, похоже, вы не можете просто проверить атрибут таким же образом, как например. //book/@author
будет напрямую возвращать список со значениями атрибута author во всех книгах, но без None
, только более короткий список.
Есть ли способ вернуть список со всеми авторами, в которых есть Nones, когда нет атрибута автора?
Упорядочить по спискам: '[book if 'author' in book.attrib else Нет для книги в data.xpath ('// book/*')]' – LismUK