Tecnología

Inicio

Ejemplos de Procesamiento de XML Python

Python utiliza el modelo de objetos de documento para almacenar y manipular elementos XML. Se analiza automáticamente el código XML y crea un objeto de documento para modelarlo, que contiene nodos XML. La biblioteca XML a continuación, puede desplazarse por el documento de encontrar diferentes elementos y atributos. Debe importar la biblioteca "xml.dom.minidom" con el fin de acceder a la biblioteca de procesamiento de XML DOM de Python.

Acceder y leer un archivo XML

biblioteca de Python XML puede analizar automáticamente los archivos de texto XML o cadenas de texto que representan un documento XML. Aquí está un ejemplo de cómo analizar un archivo XML de texto 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, lo que necesita la función "parseString".

xmlString = "<parentNode> <nodo hijo /> <nodo hijo /> <differentchildnode> Un nodo diferente </ differentchildnode> </ parentNode>"
xmlDocument = xml.dom.minidom.parseString (xmlString);

Acceso a Element nodos y nodos secundarios

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")

Esta línea de código devuelve un NodeList. Para obtener un único nodo elemento, sólo tiene que llamar:

miNodo = searchResults [0]

Los nodos pueden contener nodos secundarios. Usted puede obtener una lista de nodos secundarios dado una referencia a un nodo padre, por ejemplo:

myChildNodes = myNode.childNodes

Datos y atributos

Para acceder a los datos contenidos en las etiquetas de apertura y cierre de un elemento, debe tener acceso al campo "datos" del objeto de nodo. Por ejemplo, si un nodo denominado "miNodo" representado el texto XML "<ExampleNode attr1 =" 1 "attr2 =" 2 "> sampletext </ ExampleNode>" en un documento, entonces se podría extraer la palabra "sampletext" haciendo referencia a " myNode.data ". Para acceder a los atributos de ese nodo, lo que se necesita para acceder a la primera NamedNodeMap de los atributos de la siguiente manera:

listadeatributos = 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) .name + '=' + attrList.item (i) .value)
print ";" .join (miLista)

Escribir código XML

Se puede escribir un objeto de nodo a cualquier objeto "puede escribir" usando la función "WriteXml." Esto incluye los permisos de escritura. Un ejemplo es el siguiente:

destinationFile = open ( "samplewrite.xml", "w")
doc.writexml (destinationFile)
destinationFile.close ()

También puede imprimir el documento XML como una cadena utilizando la función "toxml" o "toprettyxml", por ejemplo:

doc.toxml de impresión ()

o

doc.toprettyxml de impresión ()

La función "toprettyxml" utiliza espacios y guiones para hacer más legible el código XML para los seres humanos.