Ejemplos de procesamiento de XML en Python

Escrito por amber viescas | Traducido por juliana star
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Ejemplos de procesamiento de XML en Python
Ejemplos de procesamiento de XML en Python. (Comstock Images/Comstock/Getty Images)

Python usa el Document Object Model (modelo de objetos del documento) para almacenar y manipular elementos XML. Este analiza automáticamente el código XML y crea un objeto de tipo Document para modelarlo, el cual contiene nodos XML. A continuación la librería XML puede recorrer el documento para encontrar sus diferentes elementos y atributos. Debes importar la librería "xml.dom.minidom" para acceder a la librería de procesamiento DOM XML de Python.

Otras personas están leyendo

Acceso y lectura de un archivo XML

La biblioteca XML de Python puede analizar automáticamente archivos de texto XML o cadenas de texto que representan un documento XML. El siguiente es un ejemplo de cómo analizar un archivo de texto XML y almacenar el resultado como un objeto Document de Python:

xmlFile = open ("sample.xml") xmlDocument = xml.dom.minidom.parse(xmlFile)

Si quieres analizar una cadena de XML necesitas la función "parseString".

xmlString = "<parentnode> <childnode /> <childnode /> <differentchildnode> A different node </differentchildnode> </parentnode>" xmlDocument = xml.dom.minidom.parseString (xmlString);

Acceso a nodos principales y nodos secundarios

Los elementos XML se representan como nodos. Para acceder a un elemento en el documento XML, debes buscarlo por su nombre con el método "getElementsByTagName", por ejemplo:

searchResults = getElementsByTagName("ExampleNode")

Esta línea de código retorna un NodeList (lista de nodos). Para obtener un solo nodo, simplemente puedes ejecutar:

myNode = searchResults[0]

Los nodos pueden contener nodos secundarios. Puedes obtener una lista de nodos secundarios dada una referencia a un nodo principal, por ejemplo:

myChildNodes = myNode.childNodes

Datos y atributos

Para acceder a los datos contenidos dentro de las etiquetas de apertura y cierre de un elemento debes acceder al campo "data" del objeto nodo. Por ejemplo, si un nodo llamado "myNode" representara el texto XML "ExampleNode attr1="1" attr2="2"> sampletext </ExampleNode>" en un documento, podrías extraer la palabra "sampletext" haciendo referencia a "myNode.data". Para acceder a los atributos de ese nodo, primero necesitarás acceder al NamedNodeMap (mapa de nodo nombrado) de los atributos como se muestra a continuación:

attrList = myNode.attributes

Después a partir de esa lista puedes 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(myList)

Escritura de código XML

Puedes escribir un objeto de tipo Node en cualquier objeto "editable" usando la función "writexml". Esto incluye archivos editables. Un ejemplo es el siguiente:

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

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

print doc.toxml()

o

print doc.toprettyxml()

La función "toprettyxml" usa espacios y sangrías para lograr que el XML sea legible para los humanos.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles