Python utiliza el modelo de objetos de documento para almacenar y manipular los elementos XML . Analiza automáticamente el código XML y crea un objeto de documento para modelarlo , que contiene nodos XML . La biblioteca de XML puede entonces pasar por el documento para encontrar los diferentes elementos y atributos. Debe importar la biblioteca " xml.dom.minidom " para acceder a la biblioteca de procesamiento de XML DOM de Python. El acceso y lectura de la biblioteca XML de un archivo XML
de Python puede analizar automáticamente los archivos de texto XML o cadenas de texto que representan un documento XML. He aquí un ejemplo de cómo analizar un archivo de texto XML y guardar el resultado como un objeto de documento de Python :
xmlFile = open ( " sample.xml ") xmlDocument = xml.dom.minidom.parse ( xmlFile )
Si desea analizar una cadena de XML , necesita la función " parseString " .
xmlString = " < childNode /> Un nodo diferente < /differentchildnode > < /parentNode > " xmlDocument = xml.dom.minidom.parseString ( xmlString ) ;
Acceso a nodos de elementos y niños
elementos XML se representan como nodos. Para acceder a un elemento en el documento XML , debe buscar por su nombre con el método " getElementsByTagName ", por ejemplo :
searchResults = getElementsByTagName ( " ExampleNode " )
line de código devuelve un NodeList . Para conseguir un nodo de elemento único , sólo tiene que llamarnos al:
myNode = searchResults [ 0 ]
nodos puede contener nodos secundarios. Usted puede obtener una lista de nodos secundarios dado una referencia a un nodo principal , por ejemplo :
myChildNodes = myNode.childNodes
datos y atributos
Para acceder a los datos contenidos en la apertura de un elemento y etiquetas de cierre , debe tener acceso al campo "data" del objeto de nodo . Por ejemplo , si un nodo denominado " myNode " representa el texto XML " SampleText < /ExampleNode > " en un documento , entonces se puede extraer la palabra " SampleText " haciendo referencia " . myNode.data " para acceder a los atributos de ese nodo , se tendría que acceder primero a la NamedNodeMap de los atributos de la siguiente manera :
attrlist = myNode.attributes
Luego de esa lista , de extraer los nombres y valores de los atributos :
myList = [ ] for i in range ( attrList.length ) : myList.append ( attrList.item ( i ) . nombre + ' =' attrList.item ( i ) el valor) print + . "," join ( myList )
Escribir XML Código
puede. escribir un objeto nodo a cualquier objeto " escritura " con la función " WriteXml . " Esto incluye los archivos editables . Un ejemplo es el siguiente :
destinationFile = open ( " samplewrite.xml ", " w ") doc.writexml ( destinationFile ) destinationFile.close ()
También puede imprimir la documento XML como una cadena mediante la función " toxml " o " toprettyxml ", por ejemplo :
impresión doc.toxml ()
o
impresión doc.toprettyxml ()
la función " toprettyxml " utiliza espacios y guiones para que el XML sea más legible para los humanos.