Я пытаюсь использовать Lxml для анализа содержимого документа .docx. Я понимаю, что lxml заменяет префиксы пространства имен фактическим пространством имен, однако это затрудняет проверку того, с каким тегом элемента я работаю. Я хотел бы иметь возможность сделать что-то вроде
if (someElement.tag == "w:p"):
, но поскольку lxml настаивает на добавлении полного пространства имен I ' d либо нужно сделать что-то вроде
if (someElemenet.tag == "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}p'):
, либо выполнить поиск полного имени пространства имен из атрибута nsmap элемента, как этот
targetTag = "{%s}p" % someElement.nsmap['w']
if (someElement.tag == targetTag):
Если бы существовал более простой способ убедить lxml выполнить либо
. Это сэкономит много нажатий клавиш при написании этот парсер. Это возможно? Я что-то упустил в документации?