Было бы предложено использовать lxml.etree для извлечения всего текста для этого экземпляра, он возвращает список строк, содержащих весь текст и хвосты.
import lxml.etree
text = """<?xml version="1.0"?>
<products xmlns="http://data-vocabulary.org/product/">
<channel>
<title>Online Store</title>
<link>https://www.clienturl.com/</link>
<product>
<identifier>DI035AT12JNR</identifier>
<quantity>1</quantity>
<fn>Button Fastening Mid Rise Boyfriend Jeans</fn>
<description>Button Fastening Mid Rise Boyfriend Jeans</description>
<category>women-clothing > women-clothing-jeans > women-clothing-jeans-straight_jeans</category>
<currency>SAR</currency>
<photo>http://clienturl/product/78/6014/v1/1-zoom.jpg</photo>
<brand>Diesel</brand>
<url>https://eclient-product-url.html</url>
<price>1450</price>
<google_product_category>Apparel & Accessories > Clothing > Pants</google_product_category>
</product>
<product>
<identifier>DI035AT12JNR</identifier>
<quantity>1</quantity>
<fn>Button Fastening Mid Rise Boyfriend Jeans</fn>
<description>Button Fastening Mid Rise Boyfriend Jeans</description>
<category>women-clothing > women-clothing-jeans > women-clothing-jeans-straight_jeans</category>
<currency>SAR</currency>
<photo>http://clienturl/product/78/6014/v1/1-zoom.jpg</photo>
<brand>Diesel</brand>
<url>https://eclient-product-url.html</url>
<price>1450</price>
<google_product_category>Apparel & Accessories > Clothing > Pants</google_product_category>
</product>
</channel>
</products>""".encode('utf-8')# the library wants bytes so we encode
# Not needed if reading from a file
doc = lxml.etree.fromstring(text)
print(doc.xpath('//text()'))
Выводит весь текст из XMLв списке строк
['\n ', '\n ', 'Online Store', '\n ', 'https://www.clienturl.com/', ' \n ', '\n ', 'DI035AT12JNR', '\n ', '1', '\n ', 'Button Fastening Mid Rise Boyfriend Jeans', '\n ', 'Button Fastening Mid Rise Boyfriend Jeans', '\n ', 'women-clothing > women-clothing-jeans > women-clothing-jeans-straight_jeans', '\n ', 'SAR', '\n ', 'http://clienturl/product/78/6014/v1/1-zoom.jpg', '\n ', 'Diesel', '\n ', 'https://eclient-product-url.html', '\n ', '1450', '\n ', 'Apparel & Accessories > Clothing > Pants', '\n', '\n', '\n ', 'DI035AT12JNR', '\n ', '1', '\n ', 'Button Fastening Mid Rise Boyfriend Jeans', '\n ', 'Button Fastening Mid Rise Boyfriend Jeans', '\n ', 'women-clothing > women-clothing-jeans > women-clothing-jeans-straight_jeans', '\n ', 'SAR', '\n ', 'http://clienturl/product/78/6014/v1/1-zoom.jpg', '\n ', 'Diesel', '\n ', 'https://eclient-product-url.html', '\n ', '1450', '\n ', 'Apparel & Accessories > Clothing > Pants', '\n ', '\n ', '\n ']
Невозможно гарантировать, что это сработает при переборе всего кода XML, потому что вы привели только один пример.Но если количество категорий в XML стандартное, вы можете выполнить итерацию по продукту и выбрать нужные индексы для добавления в другой список.Как только у вас есть списки, содержащие (идентификатор: количество: fn: описание: категория: валюта: фотография: бренд: url: цена: google_product_category), достаточно просто создать фрейм данных pandas, используя pandas.DataFrame.append
, и экспортировать в csv * 1008.*