O que é XML?
XML significa eXtensible Markup Language. Ele foi projetado para armazenar e transportar pequenas a médias quantidades de dados e é amplamente usado para compartilhar informações estruturadas.
Python permite que você analise e modifique 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 Nó XML
- Como analisar XML usando ElementTree
Como analisar XML usando minidom
Criamos um arquivo XML de amostra que iremos analisar.
Etapa 1) Dentro do arquivo, podemos ver o nome, o sobrenome, a casa e a área de atuação (SQL, Python, Teste e Negócios)
Etapa 2) Depois de analisar o documento, imprimiremos o "nome do nó" da raiz do documento e o "nome do tag do primeiro filho" . 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, casa, especialidade, etc.
- Usamos a função de análise 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 tagname filho do arquivo, então os declaramos na função de impressão
- Execute o código - ele imprime o nome do nó (#document) do arquivo XML e o primeiro tagname filho (funcionário) do arquivo XML
Nota :
Nodename e tagname filho são os nomes ou propriedades padrão de um dom XML. No caso, se você não estiver familiarizado com esse tipo de convenção de nomenclatura.
Etapa 3) Também podemos chamar a lista de tags XML do documento XML e impressos. Aqui imprimimos o conjunto de habilidades como SQL, Python, Teste e Negócios.
- Declare a experiência variável, da qual iremos extrair toda a experiência que o funcionário está tendo
- Use a função padrão dom chamada "getElementsByTagName"
- Isso obterá todos os elementos denominados habilidade
- Declare loop sobre cada uma das tags de habilidade
- Execute o código - ele fornecerá uma lista de quatro habilidades
Como Criar 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ê deve codificar para adicionar o novo atributo (BigData) à tag XML existente
- Então você tem que imprimir a tag XML com novos atributos anexados à 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 etiqueta de habilidade no primeiro filho (funcionário) do documento
- Execute o código - a nova tag "big data" aparecerá com a outra lista de experiência
Exemplo de analisador XML
Exemplo de Python 2
import xml.dom.minidomdef main ():# use a função parse () para carregar e analisar um arquivo XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# imprime o nó do documento e o nome da primeira tag filhaimprimir doc.nodeNameimprimir doc.firstChild.tagName# obter uma lista de tags XML do documento e imprimir cada umaexpertise = doc.getElementsByTagName ("expertise")print "% d expertise:"% expertise.lengthpara habilidade em especialização:print skill.getAttribute ("nome")# crie uma nova tag XML e adicione-a ao documentonewexpertise = doc.createElement ("expertise")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (newexpertise)imprimir " "expertise = doc.getElementsByTagName ("expertise")print "% d expertise:"% expertise.lengthpara habilidade em especialização:print skill.getAttribute ("nome")if name == "__main__":a Principal();
Exemplo de Python 3
import xml.dom.minidomdef main ():# use a função parse () para carregar e analisar um arquivo XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# imprime o nó do documento e o nome da primeira tag filhaimprimir (doc.nodeName)imprimir (doc.firstChild.tagName)# obter uma lista de tags XML do documento e imprimir cada umaexpertise = doc.getElementsByTagName ("expertise")imprimir ("% d expertise:"% expertise.length)para habilidade em especialização:imprimir (skill.getAttribute ("nome"))# crie uma nova tag XML e adicione-a ao documentonewexpertise = doc.createElement ("expertise")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (newexpertise)imprimir (" ")expertise = doc.getElementsByTagName ("expertise")imprimir ("% d expertise:"% expertise.length)para habilidade em especialização:imprimir (skill.getAttribute ("nome"))if __name__ == "__main__":a Principal();
Como analisar XML usando ElementTree
ElementTree é uma API para manipulação de XML. ElementTree é a maneira fácil de processar arquivos XML.
Estamos usando o seguinte documento XML como dados de amostra:
- SQL
- Python
Lendo 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 ler os dados xml acima
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)resultado:
Expertise Data:SQLPython
Resumo:
Python permite que você analise todo o documento XML de uma vez e não apenas uma linha de cada vez. Para analisar o documento XML, você precisa ter o documento inteiro na memória.
- Para analisar o 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 ("nome das tags xml")
- Para criar e adicionar novos atributos no documento XML
- Use a função "createElement"