Bonjour,

Ma question va peut-être vous paraître simpliste, mais je ne m'en sort pas...

J'aimerais lire un fichier XML pour un faire un data frame dont les variables sont les extrémités de chaque branche.

Par exemple pour un fichier dans ce goût là
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<Dataset>
  <Datarecord>
    <Cat1>
      <Var11>phonographe</Var11> 
      <Var12>champ</Var12> 
      <Souscat>
        <Var111>triangle</Var111> 
      </Souscat>
    </Cat1>
    <Var2>loterie</Var2> 
  </Datarecord>
  <Datarecord>
    <Cat1>
      <Var12>plaine</Var12> 
    </Cat1>
  </Datarecord>
</Dataset>

j'aimerais obtenir un dataframe de la forme
Var11 Var12 Var111 Var2
phonographe champ triangle loterie
NA plaine NA NA

J'ai essayé avec xmlToDataFrame du package XML :
Code R : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
donnees <- XML::xmlParse("~/exemple.xml")
df <- XML::xmlToDataFrame(donnees)

mais cela concatène les variables qui sont en dessous du 2ème noeud :
Cat1 Var2
phonographechamptriangle loterie
plaine NA

A noter que je dispose de la liste des noms variables que je peux facilement mettre en vecteur, mais je ne sais pas a priori à quel "niveau de profondeur" sont ces variables sont dans mon fichier XML.

J'espère avoir été suffisamment clair.

Je vous remercie d'avance !