C'è un modo per definire lo spazio dei nomi predefinito/non prefissato in Python ElementTree? Questo non sembra funzionare ...Python ElementTree namespace predefinito?
ns = {"":"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("version", ns))
Né questo:
ns = {None:"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("version", ns))
Questo lo fa, ma poi devo prefisso ogni elemento:
ns = {"mvn":"http://maven.apache.org/POM/4.0.0"}
pom = xml.etree.ElementTree.parse("pom.xml")
print(pom.findall("mvn:version", ns))
Usare Python 3.5 su OSX.
MODIFICA: se la risposta è "no", è ancora possibile ottenere la taglia :-). Voglio solo un "no" definitivo da qualcuno che ha trascorso molto tempo ad usarlo.
Utilizzando 'ElementTree', devi usare un prefisso. Se usi 'lxml', puoi usare' .nsmap' invece dei prefissi hard-coding. Vedi http://stackoverflow.com/questions/14853243/parsing-xml-with-namespace-in-python-via-elementtree per dettagli – gtlambert