Como analisar XML em Ruby

Como analisar XML em Ruby
Os documentos XML e HTML são uma tecnologia generalizada que alimenta a Internet moderna. Quase todas as páginas da web da Internet usam pelo menos uma única formatação HTML. Este guia rápido discutirá como analisar documentos XML e HTML em Ruby usando o popular pacote Nokogiri.

O que são documentos XML e HTML?

Os documentos HTML são qualquer documento que contenha linguagem de marca de hipertexto, que é o formato básico usado para descrever a estrutura dos documentos exibidos na web.

Da mesma forma, os documentos XML são documentos que contêm marcação XML. De acordo com a documentação oficial, XML ou linguagem de marcação extensível é uma linguagem de marcação que define as regras para codificar documentos para a legibilidade humana e a máquina.

Os documentos HTML e XML terminam em .html e .XML, respectivamente.

Instalação

Antes de podermos processar qualquer documentos XML ou HTML em Ruby, precisamos instalar a biblioteca XML/HTML. Neste exemplo, usaremos a biblioteca Nokogiri.

Para instalá -lo, use o comando GEM Package Manager:

$ gem install nokogiri
Buscando Nokogiri-1.12.0-X86_64-Linux.gema
Instalado com sucesso nokogiri-1.12.0-X86_64-Linux
Documentação de análise para Nokogiri-1.12.0-X86_64-Linux
Instalando a documentação do RI para Nokogiri-1.12.0-X86_64-Linux
Feito de instalação de documentação para Nokogiri após 1 segundos
1 Gem instalado

Depois de instalado, você pode testá -lo lançando o shell interativo Ruby com o comando IRB.
Em seguida, importe o pacote como:

requer 'nokogiri'
=> true

Carregando documentos HTML/XML

Para carregar documentos HTML ou XML usando a biblioteca Nokogiri, você usa o operador de resolução de namespace rubi e acesse o carregador, o HTML ou o XML.

Por exemplo: para carregar html, use:

requer 'nokogiri'
html_data = nokogiri :: html ('






Documento



<')
coloca html_data.aula

O código de exemplo deve carregar o conteúdo HTML e salvá -los na variável definida. Para verificar a classe de origem dos dados, usamos o .Método de classe.

O código deve exibir a saída como:

Nokogiri :: html4 :: document

Carregando do arquivo

Também podemos carregar os dados de um arquivo html/xml. Considere um arquivo de amostra com o conteúdo XML como:

Para carregar o arquivo XML com Nokogiri, você pode usar o código de exemplo como mostrado:

requer 'nokogiri'
sample_data = arquivo.aberto ('amostra.xml ')
parsed_info = nokogiri :: xml (sample_data)
coloca parsed_info

Pesquisando um documento XML

Para pesquisar em um documento XML ou HTML carregado, podemos usar o método XPath.

Por exemplo: no arquivo XML de amostra acima, para obter todos os valores, podemos fazer:

requer 'nokogiri'
sample_data = arquivo.aberto ('amostra.xml ')
parsed_info = nokogiri :: xml (sample_data)
coloca parsed_info.xpath ("// valor")

O código de amostra acima deve retornar os valores com a palavra -chave Valor.

Obtenha um item individual

Também podemos obter o valor de um item individual. Por exemplo: para obter o documento, digite o exemplo do arquivo XML acima:

requer 'nokogiri'
sample_data = arquivo.aberto ('amostra.xml ')
parsed_info = nokogiri :: xml (sample_data)
coloca parsed_info.xpath ("/*/@document_type")

O código deve retornar o valor do document_type.

Converter xml em html

Você também pode converter um documento XML analisado em HTML usando o método TO_HTML. Aqui está um código de exemplo:

requer 'nokogiri'
sample_data = arquivo.aberto ('amostra.xml ')
parsed_info = nokogiri :: xml (sample_data)
zero = parsed_info.to_html
coloca zero

Isso deve retornar os dados XML ao HTML na forma de uma string.

Conclusão

Este curto tutorial mostrou como analisar documentos XML usando o pacote Nokogiri. Consulte a documentação para descobrir seus recursos completos.