Tutorial do Python XML Parser:Leia o exemplo do arquivo xml (Minidom, ElementTree)
O que é XML?
XML significa eXtensible Markup Language. Ele foi projetado para armazenar e transportar pequenas e médias quantidades de dados e é amplamente utilizado para compartilhar informações estruturadas.
O Python permite analisar e modificar o documento XML. Para analisar o documento XML, você precisa ter todo o documento XML na memória. Neste tutorial, veremos como podemos usar a classe minidom XML em Python para carregar e analisar o arquivo XML.
Neste tutorial, vamos aprender-
- Como analisar XML usando minidom
- Como criar um nó XML
- Como analisar XML usando ElementTree
Como analisar XML usando minidom
Criamos um arquivo XML de amostra que vamos analisar.
Etapa 1) Dentro do arquivo, podemos ver nome, sobrenome, home e a área de atuação (SQL, Python, Testes e Negócios)
Etapa 2) Depois de analisar o documento, imprimiremos o "nome do nó" da raiz do documento e o “nome da tag firstchild” . Tagname e nodename são as propriedades padrão do arquivo XML.
- Importe o módulo xml.dom.minidom e declare o arquivo que deve ser analisado (myxml.xml)
- Este arquivo contém algumas informações básicas sobre o funcionário, como nome, sobrenome, residência, especialização etc.
- Usamos a função parse no minidom XML para carregar e analisar o arquivo XML
- Temos a variável doc e doc obtém o resultado da função de análise
- Queremos imprimir o nome do nó e o nome da tag filho do arquivo, então o declaramos na função print
- Execute o código - Ele imprime o nome do nó (#document) do arquivo XML e o primeiro tagname filho (funcionário) do arquivo XML
Observação :
Nodename e tagname filho são os nomes padrão ou propriedades de um dom XML. Caso você não esteja familiarizado com esses tipos de convenções de nomenclatura.
Etapa 3) Também podemos chamar a lista de tags XML do documento XML e imprimi-la. Aqui imprimimos o conjunto de habilidades como SQL, Python, Testes e Negócios.
- Declare a expertise variável, da qual vamos extrair toda a expertise que o funcionário do nome está tendo
- Use a função padrão dom chamada “getElementsByTagName”
- Isso fará com que todos os elementos sejam chamados de habilidade
- Declare um loop sobre cada uma das tags de habilidade
- Execute o código - Ele fornecerá uma lista de quatro habilidades
Como criar um nó XML
Podemos criar um novo atributo usando a função “createElement” e, em seguida, anexar esse novo atributo ou tag às tags XML existentes. Adicionamos uma nova tag “BigData” em nosso arquivo XML.
- Você precisa codificar para adicionar o novo atributo (BigData) à tag XML existente
- Então você tem que imprimir a tag XML com novos atributos anexados com a tag XML existente
- Para adicionar um novo XML e adicioná-lo ao documento, usamos o código “doc.create elements”
- Este código criará uma nova tag de habilidade para nosso novo atributo "Big-data"
- Adicione esta tag de habilidade no primeiro filho do documento (funcionário)
- Execute o código - a nova tag "big data" aparecerá com a outra lista de especialistas
Exemplo de analisador XML
Exemplo do Python 2
import xml.dom.minidom
def main():
# use the parse() function to load and parse an XML file
doc = xml.dom.minidom.parse("Myxml.xml");
# print out the document node and the name of the first child tag
print doc.nodeName
print doc.firstChild.tagName
# get a list of XML tags from the document and print each one
expertise = doc.getElementsByTagName("expertise")
print "%d expertise:" % expertise.length
for skill in expertise:
print skill.getAttribute("name")
# create a new XML tag and add it into the document
newexpertise = doc.createElement("expertise")
newexpertise.setAttribute("name", "BigData")
doc.firstChild.appendChild(newexpertise)
print " "
expertise = doc.getElementsByTagName("expertise")
print "%d expertise:" % expertise.length
for skill in expertise:
print skill.getAttribute("name")
if name == "__main__":
main(); Exemplo do Python 3
import xml.dom.minidom
def main():
# use the parse() function to load and parse an XML file
doc = xml.dom.minidom.parse("Myxml.xml");
# print out the document node and the name of the first child tag
print (doc.nodeName)
print (doc.firstChild.tagName)
# get a list of XML tags from the document and print each one
expertise = doc.getElementsByTagName("expertise")
print ("%d expertise:" % expertise.length)
for skill in expertise:
print (skill.getAttribute("name"))
# create a new XML tag and add it into the document
newexpertise = doc.createElement("expertise")
newexpertise.setAttribute("name", "BigData")
doc.firstChild.appendChild(newexpertise)
print (" ")
expertise = doc.getElementsByTagName("expertise")
print ("%d expertise:" % expertise.length)
for skill in expertise:
print (skill.getAttribute("name"))
if __name__ == "__main__":
main(); Como analisar XML usando ElementTree
ElementTree é uma API para manipular XML. ElementTree é a maneira mais fácil de processar arquivos XML.
Estamos usando o seguinte documento XML como dados de amostra:
<data>
<items>
<item name="expertise1">SQL</item>
<item name="expertise2">Python</item>
</items>
</data>
Ler XML usando ElementTree:
devemos primeiro importar o módulo xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Agora vamos buscar o elemento raiz:
root = tree.getroot()
A seguir está o código completo para leitura dos dados xml acima
import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()
# all items data
print('Expertise Data:')
for elem in root:
for subelem in elem:
print(subelem.text)
saída:
Expertise Data: SQL Python
Resumo:
O Python permite que você analise todo o documento XML de uma só vez e não apenas uma linha por vez. Para analisar o documento XML, você precisa ter o documento inteiro na memória.
- Para analisar um documento XML
- Importar xml.dom.minidom
- Use a função “parse” para analisar o documento ( doc=xml.dom.minidom.parse (nome do arquivo);
- Chame a lista de tags XML do documento XML usando o código (=doc.getElementsByTagName( “name of xml tags”)
- Para criar e adicionar novo atributo no documento XML
- Usar a função “createElement”
python
- E/S de arquivo Python
- Java BufferedReader:Como Ler Arquivo em Java com Exemplo
- Função Python String strip () com EXEMPLO
- Comprimento da string do Python | Exemplo do método len()
- Yield in Python Tutorial:Generator &Yield vs Return Example
- Contador Python em coleções com exemplo
- Função Enumerate() em Python:Loop, Tuple, String (Exemplo)
- Python verifica se o arquivo existe | Como verificar se existe um diretório em Python
- Python JSON:codificar (despejar), decodificar (carregar) e ler arquivo JSON
- Python List index() com exemplo