Estoy intentando crear un documento xml en memoria de modo que los nodos secundarios de la raíz requieran un espacio de nombre.Creación de documento XML con Python/ElementTree y espacios de nombres
El documento final debe ser algo como esto:
<Feed>
<FeedEntity Id="0000"
xmlns="http://schemas.example.com/search/query/2010/5/revision">
<FeedRequest locale="en-US" title="<some value>"/>
</FeedEntity>
... another FeedEntity element ...
</Feed>
Sin embargo, al imprimir el documento que he creado con elementtree lib, se parece más a esto:
<Feed>
<ns0:FeedEntity Id="0000"
xmlns:ns0="http://schemas.example.com/search/query/2010/5/revision">
<FeedRequest locale="en-US" title="<some value>"/>
</ns0:FeedEntity>
</Feed>
Aquí es la forma en que estoy creando el documento:
counter = 0
namespace = "http://schemas.example.com/search/query/2010/5/revision"
root = Element("Feed")
node_name = "{%s}FeedEntity" % (namespace,);
feed_entity_element = Element(node_name)
feed_entity_element["Id"] = "%04d" % (counter,);
feed_request_element = Element("FeedRequest");
feed_request_element["Culture"] = self.culture;
feed_request_element["Query"] = address;
# append each of the elements to the xml document
feed_entity_element.append(feed_request_element);
root.append(feed_entity_element);
str_data = ET.tostring(root)
print str_data
¿Cómo me deshago de las partes "ns0" en el XML final para que se parezca más al primer ejemplo mencionado anteriormente?
¿Por qué quieres cambiarlo? Cualquier cosa que use XML debería tratar las dos versiones de la misma manera. – Mark