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>'

Respuestas a la pregunta(1)

Su respuesta a la pregunta