English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Arquivos XML em R

Ferramentas online

XML significa Linguagem de Marcação Extensível (eXtensible Markup Language), XML foi projetado para transmitir e armazenar dados.

O R requer pacotes de extensão para ler e escrever arquivos XML, podemos digitar o seguinte comando no console do R para instalar://install.packages("XML", repos = "https:/mirrors.ustc.edu.cn/CRAN

")

Verificar se a instalação foi bem-sucedida:
[1> any(grepl("XML", installed.packages()))

]] TRUE

Criar arquivo sites.xml, o arquivo xml está na mesma pasta do script de teste, o código é o seguinte:
    print(rootnode[[
        <id>1</id>
        <sites>/codebox<
        <name>Google</url>
        name>111</<likes>
    </likes>
 
    print(rootnode[[
        <id>2</id>
        <site>3<name>w/codebox<
        <url>pt.oldtoolbag.com</url>
        name>222</<likes>
    </likes>
 
    print(rootnode[[
        <id>3</id>
        <url>www.google.com</codebox<
        <name>Taobao</url>
        name>333</<likes>
    </likes>
</<url>www.taobao.com<

sites>

# Carregar pacote XML
library("XML")
# Definir o nome do arquivo
result <- xmlParse(file = "sites.xml")
xmlSize(rootnode)
A seguir, podemos usar o pacote XML para carregar dados do arquivo xml:

print(result)

# Carregar pacote XML
library("XML")
# Definir o nome do arquivo
result <- xmlParse(file = "sites.xml")
Ver dados do nó, uma linha específica usando [ ], uma linha e uma coluna específicas usando [[ ]]::
# Extrair nó raiz- rootnode <
Estatísticas de dados xml:
# Estatísticas de dados- rootsize <
xmlSize(rootnode)
# Output dos resultados

O resultado da execução do código acima é:

[1print(rootsize) 3

]]

# Carregar pacote XML
library("XML")
# Definir o nome do arquivo
result <- xmlParse(file = "sites.xml")
Ver dados do nó, uma linha específica usando [ ], uma linha e uma coluna específicas usando [[ ]]::
# Extrair nó raiz- rootnode <
)] 2 xmlRoot(result)
dados dos nós2print(rootnode[
)] 2 # Ver o  1 o nó da
um dado2]][[1]])
)] 2 # Ver o 3 o nó da
um dado2]][[3]])

O resultado da execução do código acima é:

$site
print(rootnode[[
  <id>2</id>
  <site>3<name>w/codebox<
  <url>pt.oldtoolbag.com</url>
  name>222</<likes>
</likes> 
site>
[1attr(,"class")        
<id>2</id> 
<url>pt.oldtoolbag.com</url>

XML para lista de dados

O código acima gera saída em formato xml, podemos usar a função xmlToList() para converter a saída de arquivo para formato de lista, facilitando a leitura:

# Carregar pacote XML
library("XML")
# Definir o nome do arquivo
result <- xmlParse(file = "sites.xml")
# Converter para lista
xml_data <- xmlToList(result)
print(xml_data)
print("============================")
# Imprimir a primeira linha e segunda coluna de dados
print(xml_data[[1]][[2]])

O resultado da execução do código acima é:

$site
$site$id
[1] "1"
$site$name
[1] "Google"
$site$url
[1] "www.google.com"
$site$likes
[1] "111"
$site
$site$id
[1] "2"
$site$name
[1] "w3codebox"
$site$url
[1] "pt.oldtoolbag.com"
$site$likes
[1] "222"
$site
$site$id
[1] "3"
$site$name
[1] "Taobao"
$site$url
[1] "www.taobao.com"
$site$likes
[1] "333"
[1] "============================"
[1] "Google"

Conversão de XML para data frame

Os dados do arquivo XML podem ser convertidos para o tipo data frame, facilitando assim a operação dos dados:

# Carregar pacote XML
library("XML")
# Converter dados do arquivo xml para data frame
xmldataframe <- xmlToDataFrame("sites.xml")
print(xmldataframe)

O resultado da execução do código acima é:

  id name  url likes
1  1 Google www.google.com   111
2  2 w3codebox pt.oldtoolbag.com   222
3  3 Taobao www.taobao.com   333