У меня есть набор XPATHS
для этого XML формата. Проблема в том, что иногда он имеет указанное пространство имен.
<?xml version="1.0" encoding="UTF-8"?>
<SHOP xmlns="http://www.zbozi.cz/ns/offer/1.0">
<SHOPITEM>
<PRODUCTNAME>Crysta váza 4 CM</PRODUCTNAME>
<DESCRIPTION><![CDATA[Český producent je vážený po celém světě
Я не могу просто сделать это в этом случае, чтобы получить все элементы SHOPITEM:
root.xpath('//SHOPITEM')
Мне нужно указать пространство имен а затем префикс каждого тега.
root.xpath('//g:SHOPITEM',namespaces={'g':'http://www.zbozi.cz/ns/offer/1.0'})
Когда я делаю это:
root.xpath('//SHOPITEM',namespaces={'':'http://www.zbozi.cz/ns/offer/1.0'})
В нем говорится:
пустой префикс пространства имен не поддерживается в xpath
Но я не могу просто добавить все теги к «g». Есть ли лучший способ сделать это? Заставить дерево lxml
вести себя так, как будто не было namespace
, или просто автоматически разобрать его?