Python usa o Document Object Model para armazenar e manipular elementos XML. Ele analisa automaticamente o código XML e cria um objeto de documento para modelá-lo , que contém os nós XML. A biblioteca XML pode então percorrer o documento para encontrar diferentes elementos e atributos. Você deve importar a biblioteca " xml.dom.minidom " , a fim de acessar a biblioteca de processamento do Python DOM XML. Acessando e ler um arquivo XML
biblioteca XML do Python pode analisar automaticamente arquivos de texto XML ou cadeias de texto que representam um documento XML. Aqui está um exemplo de como analisar um arquivo de texto XML e armazenar o resultado como um objeto de documento Python:
xmlFile = open ( " sample.xml " ) xmlDocument = xml.dom.minidom.parse ( xmlFile )
Se você quiser analisar uma seqüência de XML , você precisa da função " parseString " .
xmlString = " < childNode /> Um nó diferente " xmlDocument = xml.dom.minidom.parseString ( xmlString );
Acessando Elemento nós e nós filho
elementos XML são representadas como nós . Para acessar um elemento no documento XML , você deve procurá-lo pelo nome com o método " getElementsByTagName ", por exemplo :
searchResults = getElementsByTagName ( " ExampleNode " )
Esta linha de código retorna um NodeList . Para obter um único nó do elemento , você pode simplesmente chamar :
myNode = searchResults [0]
Nodes pode conter nós filho. Você pode obter uma lista de nós filho dada uma referência a um nó pai , por exemplo :
myChildNodes = myNode.childNodes
dados e atributos
Para acessar os dados contidos abertura e fechamento de um elemento , você deve acessar o campo do objeto nó " de dados" . Por exemplo, se um nó chamado " myNode " representou o texto XML " sampletext " em um documento , então você pode extrair a palavra " sampletext " referenciando " . myNode.data " para acessar os atributos desse nó , você precisa primeiro acesso, o NamedNodeMap dos atributos da seguinte forma:
attrList = myNode.attributes
Então, a partir dessa lista, você extrai os nomes e os valores dos atributos :
myList = [] for i in range ( attrList.length ) : minhalista.append ( attrList.item ( i) . . nome + '=' + attrList.item (i ) Valor ) print " ; " . join ( myList )
Escrevendo código XML
Você pode escrever um objeto Node a qualquer " gravável " objeto usando a função " WriteXML . " Isso inclui arquivos graváveis . Um exemplo é a seguinte:
destinationfile = open ( " samplewrite.xml ", " w" ) doc.writexml ( destinationfile ) destinationFile.close ()
Você também pode imprimir o documento XML como uma string usando a função " ToXml " ou " toprettyxml ", por exemplo :
doc.toxml print ()
ou
impressão doc.toprettyxml ()
a função " toprettyxml " usa espaços e travessões para tornar o XML mais legível para os humanos.