Есть ли способ определить пространство имен по умолчанию/unprefixed в python ElementTree? Это не похоже на работу ...Python ElementTree пространство имен по умолчанию?
ns = {"":"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("version", ns))
Нор делает это:
ns = {None:"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("version", ns))
Это делает, но тогда я должен префикс каждый элемент:
ns = {"mvn":"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("mvn:version", ns))
Использование Python 3.5 на OSX.
EDIT: если ответ «нет», вы все равно можете получить щедрость :-). Я просто хочу окончательное «нет» от кого-то, кто потратил много времени на его использование.
Используя 'ElementTree', вы должны использовать префикс. Если вы используете 'lxml', вы можете использовать' .nsmap' вместо префиксов жесткого кодирования. См. Http://stackoverflow.com/questions/14853243/parsing-xml-with-namespace-in-python-via-elementtree для получения более подробной информации. – gtlambert