J'ai besoin d'identifier tous les attributs uniques d'un fichier xml pour transformer correctement le xml en un cadre de données.
Le R-script suivant permet d'effectuer la transformation. Mais seulement, si les attributs sont connus.
library(rvest)
library(magrittr)
xml <- read_xml('<?xml version="1.0" encoding="UTF-8"?>
<movies>
<movie Id="1" Name="Movie 1" IMDB="8,4" Date="2008-07-31T00:00:00.000" Views="649" />
<movie Id="2" Name="Movie 2" IMDB="3,7" Location="El Cerrito, CA" Actor="Tom Hanks" />
</movies>')
movies <- xml %>% xml_nodes("movie")
data.frame(
Id = movies %>% xml_attr("Id"),
Name = movies %>% xml_attr("Name"),
IMDB = movies %>% xml_attr("IMDB"),
Date = movies %>% xml_attr("Date"),
Views = movies %>% xml_attr("Views"),
Location = movies %>% xml_attr("Location"),
Actor = movies %>% xml_attr("Actor")
)
La sortie ressemblera à ceci :
Id Name IMDB Date Views Location Actor
1 1 Movie 1 8,4 2008-07-31T00:00:00.000 649 <NA> <NA>
2 2 Movie 2 3,7 <NA> <NA> El Cerrito, CA Tom Hanks
Comment est-il possible d'obtenir une liste de tous les attributs uniques (les données actuelles sont trop longues pour les vérifier manuellement) ?
Pour cet exemple, le résultat souhaité devrait ressembler à la liste suivante :
[1] "Id"
[2] "Name"
[3] "IMDB"
[4] "Date"
[5] "Views"
[6] "Location"
[7] "Actor"