синтаксический анализ xml, содержащего пространство имен по умолчанию, для получения значения элемента с использованием lxml
У меня есть строка XML, как это
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> """
Я хочу извлечь все URL, присутствующие внутри<loc>
узел т.е.http://www.example.org/sitemap_1.xml.gz
Я попробовал этот код, но он не сказал ни слова
from lxml import etree
root = etree.fromstring(str1)
urls = root.xpath("//loc/text()")
print urls
[]
Я попытался проверить, правильно ли сформирован мой корневой узел. Я попытался это и получить ту же строку, что и 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>'