Я пытаюсь использовать lxml для возврата текста внутри тегов <ImageSet><LargeImage><URL>this text</URL></LargeImage></ImageSet>
мой код возвращает только None для текста под каждым тегом.
Вот мой код:
# I am trying to get the URL text using lxml
for attr_list in tree.iterfind(".//"+settings.AMAZON_NS+"ImageSet"):
for image_list in tree.find(".//"+settings.AMAZON_NS+"LargeImage"):
print(etree.tostring(image_list))
print(image_list.findtext(".//"+settings.AMAZON_NS+"URL")) # This is only printing None.
Вот вывод кода:
<URL xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01">http://ecx.images-amazon.com/images/I/51dSYJcTaTL.jpg</URL>
None
<Height xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">500</Height>
None
<Width xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">349</Width>
None
<URL xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01">http://ecx.images-amazon.com/images/I/51dSYJcTaTL.jpg</URL>
None
<Height xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">500</Height>
None
<Width xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">349</Width>
None
<URL xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01">http://ecx.images-amazon.com/images/I/51dSYJcTaTL.jpg</URL>
None
<Height xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">500</Height>
None
<Width xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">349</Width>
None
<URL xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01">http://ecx.images-amazon.com/images/I/51dSYJcTaTL.jpg</URL>
None
<Height xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">500</Height>
None
<Width xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">349</Width>
None
<URL xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01">http://ecx.images-amazon.com/images/I/51dSYJcTaTL.jpg</URL>
None
<Height xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">500</Height>
None
<Width xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">349</Width>
None
<URL xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01">http://ecx.images-amazon.com/images/I/51dSYJcTaTL.jpg</URL>
None
<Height xmlns="http://webservices.amazon.com/AWSECommerceService/2009-10-01" Units="pixels">500</Height>
В строках # 11, 17, 23 и т. Д. Должен отображаться URL, а не None.
Редактировать 1: Позвольте мне попытаться уточнить мой вопрос выше ...
Это код, который я использую:
for item in tree.iterfind(".//"+settings.AMAZON_NS+"ImageSet"):
for image_set in item.find(".//"+settings.AMAZON_NS+"LargeImage"):
print(etree.tostring(image_set))
Это вывод, который я получаю:
http://dpaste.com/289187/
Как конкретно получить содержимое внутри тегов URL?
Я пробовал следующее (хотя ни одна из них не работает, но, возможно, вы, ребята, можете понять общую идею того, что я пытаюсь сделать из моих неудачных попыток):
for item in tree.iterfind(".//"+settings.AMAZON_NS+"ImageSet"):
for image_set in item.find(".//"+settings.AMAZON_NS+"LargeImage"):
for image_url_set in image_set.find(".//"+settings.AMAZON_NS+"URL"):
print(etree.tostring(image_url_set))
Вот ошибка, которую я получаю:
для image_url_set в image_set.find (".//"+ settings.AMAZON_NS +" URL "):
Ошибка типа: объект 'NoneType' не повторяется
for item in tree.iterfind(".//"+settings.AMAZON_NS+"ImageSet"):
for image_set in item.find(".//"+settings.AMAZON_NS+"LargeImage"):
for image_link in image_set.iter(".//"+settings.AMAZON_NS+"URL"):
print(image_link.text)
Ничто даже не печатает с этим.