analizar xml que contiene el espacio de nombres predeterminado para obtener un valor de elemento usando lxml
Tengo una cadena xml como esta
str1 = """<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>
http://www.example.org/sitemap_1.xml.gz
</loc>
<lastmod>2015-07-01</lastmod>
</sitemap>
</sitemapindex> """
Quiero extraer todas las URL presentes dentro<loc>
nodo, es decirhttp://www.example.org/sitemap_1.xml.gz
Probé este código pero no decía
from lxml import etree
root = etree.fromstring(str1)
urls = root.xpath("//loc/text()")
print urls
[]
Traté de verificar si mi nodo raíz está formado correctamente. Intenté esto y obtuve la misma cadena que str1
etree.tostring(root)
'<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n<sitemap>\n<loc>http://www.example.org/sitemap_1.xml.gz</loc>\n<lastmod>2015-07-01</lastmod>\n</sitemap>\n</sitemapindex>'