Trabajar con archivos XML en la programación R

XML, que significa Extensible Markup Language, se compone de etiquetas de marcado, en las que cada etiqueta ilustra la información que lleva el atributo particular en el archivo XML. Podemos trabajar con los archivos XML utilizando el paquete XML proporcionado por R. El paquete debe instalarse explícitamente con el siguiente comando: 

install.packages("XML")

Crear archivo XML

Los archivos XML se pueden crear guardando los datos con las etiquetas respectivas que contienen información sobre el contenido y guardándolos con ‘.xml’.
Usaremos el siguiente archivo XML ‘sample.xml’ para ver las diversas operaciones que se pueden realizar en el archivo:

HTML

<RECORDS>
  <STUDENT>
      <ID>1</ID>
      <NAME>Alia</NAME>
      <MARKS>620</MARKS>
      <BRANCH>IT</BRANCH>
  </STUDENT>
  <STUDENT>
      <ID>2</ID>
      <NAME>Brijesh</NAME>
      <MARKS>440</MARKS>
      <BRANCH>Commerce</BRANCH>
   </STUDENT>
  <STUDENT>
      <ID>3</ID>
      <NAME>Yash</NAME>
      <MARKS>600</MARKS>
      <BRANCH>Humanities</BRANCH>
   </STUDENT>
  <STUDENT>
      <ID>4</ID>
      <NAME>Mallika</NAME>
      <MARKS>660</MARKS>
      <BRANCH>IT</BRANCH>
   </STUDENT>
  <STUDENT>
      <ID>5</ID>
      <NAME>Zayn</NAME>
      <MARKS>560</MARKS>
      <BRANCH>IT</BRANCH>
   </STUDENT>
</RECORDS>

Leer archivo XML

El archivo XML se puede leer después de instalar el paquete y luego analizarlo con la función xmlparse() , que toma como entrada el nombre del archivo XML e imprime el contenido del archivo en forma de lista. El archivo debe estar ubicado en el directorio de trabajo actual. También se debe instalar un paquete adicional llamado ‘métodos’. El siguiente código se puede utilizar para leer el contenido del archivo «sample.xml». 

Python3

# loading the library and other important packages
library("XML")
library("methods")
 
# the contents of sample.xml are parsed
data <- xmlParse(file = "sample.xml")
 
print(data)

Producción:

1
Alia
620
IT
2
Brijesh
440
Commerce
3
Yash
600
Humanities
4
Mallika
660
IT
5
Zayn
560
IT

Extraer información sobre el archivo XML

Los archivos XML se pueden analizar y las operaciones se pueden realizar en sus diversos componentes. Hay varias funciones integradas disponibles en R, para extraer la información de los Nodes asociados con el archivo, obteniendo la cantidad de Nodes en el archivo y también los atributos específicos de algún Node en particular en el archivo. 

Python3

# loading the library and other important packages
library("XML")
library("methods")
 
# the contents of sample.xml are parsed
# Load the packages required to read XML files.
library("XML")
library("methods")
 
# Give the input file name to the function.
res <- xmlParse(file = "sample.xml")
 
# Extract the root node.
rootnode <- xmlRoot(res)
 
# number of nodes in the root.
nodes <- xmlSize(rootnode)
 
# get entire contents of a record
second_node <- rootnode[2]
 
# get 3rd attribute of 4th record
attri <- rootnode[[3]][[4]]
 
cat('number of nodes: ', nodes)
print ('details of 2 record: ')
print (second_node)
 
# prints the marks of the fourth record
print ('3rd attribute of 4th record: ', attr)

Producción:

[1] number of nodes: 5
[2] details of 2 record:
$STUDENT
    2
    Brijesh
    440
    Commerce
[3] 3rd attribute of 4th record: 660

Conversión de XML a marco de datos

Para mejorar la legibilidad de los datos, los datos XML se pueden convertir en un marco de datos que consta de un marco de datos compuesto por filas y columnas. R contiene una función incorporada xmlToDataFrame() que contiene como entrada el archivo XML y genera los datos correspondientes en forma de marco de datos. Esto simula el fácil manejo y procesamiento de grandes cantidades de datos. 

Python3

# Load the required packages.
library("XML")
library("methods")
 
# Convert the input xml file to a data frame.
dataframe <- xmlToDataFrame("sample.xml")
print(dataframe)

Producción:

       ID   NAME     MARKS      BRANCH       
1      1    Alia      620         IT
2      2    Brijesh   440      Commerce
3      3    Yash      600      Humanities
4      4    Mallika   660         IT
5      5    Zayn      560         IT

Publicación traducida automáticamente

Artículo escrito por yashchuahan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *