Introdução ao XML

Prof. Walmes Marques Zeviani

23 Fev 2017

Objetivo e justificativa

XML é uma abordagem geral para representar de dados em diversos formatos.

Fornecer uma razoável definição e explicação para os vários aspectos da linguagem XML e ilustrar alguns dialetos, além de apresentar uma visão geral da sintaxe e estrutura do XML.

XML

Definição e características

Dialetos XML

Exemplos

Autópsia do XML

Uma tabela de dados

str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
write.table(mtcars,
            file = "mtcars.ods",
            quote = FALSE,
            row.names = FALSE)

Abrir no Gnumeric e exportar para XML.

Um catálogo de plantas

Essencial

Exemplos

Estrutura do XML

Regras

Pontos contra

Estrutura hierárquica

Modelo de árvore

Terminologia

Figura  1: @munzert2015automated, página 47.

Figura 1: MUNZERT et al. (2015), página 47.

Figura  2: @munzert2015automated,  página 87.

Figura 2: MUNZERT et al. (2015), página 87.

Importar XML no R

Pacote

install.packages("XML",
                 dependencies = TRUE,
                 repos = "http://cran-r.c3sl.ufpr.br/")
library(XML)
packageVersion("XML")
## [1] '3.98.1.16'

Leitura

url <- "https://www.w3schools.com/Xml/plant_catalog.xml"
x <- readLines(url)

a <- xmlParse(x)
str(a)
## Classes 'XMLInternalDocument', 'XMLAbstractDocument' <externalptr>
a
## <?xml version="1.0" encoding="UTF-8"?>
## <CATALOG>
##   <PLANT>
##     <COMMON>Bloodroot</COMMON>
##     <BOTANICAL>Sanguinaria canadensis</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$2.44</PRICE>
##     <AVAILABILITY>031599</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Columbine</COMMON>
##     <BOTANICAL>Aquilegia canadensis</BOTANICAL>
##     <ZONE>3</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$9.37</PRICE>
##     <AVAILABILITY>030699</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Marsh Marigold</COMMON>
##     <BOTANICAL>Caltha palustris</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Mostly Sunny</LIGHT>
##     <PRICE>$6.81</PRICE>
##     <AVAILABILITY>051799</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Cowslip</COMMON>
##     <BOTANICAL>Caltha palustris</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$9.90</PRICE>
##     <AVAILABILITY>030699</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Dutchman's-Breeches</COMMON>
##     <BOTANICAL>Dicentra cucullaria</BOTANICAL>
##     <ZONE>3</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$6.44</PRICE>
##     <AVAILABILITY>012099</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Ginger, Wild</COMMON>
##     <BOTANICAL>Asarum canadense</BOTANICAL>
##     <ZONE>3</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$9.03</PRICE>
##     <AVAILABILITY>041899</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Hepatica</COMMON>
##     <BOTANICAL>Hepatica americana</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$4.45</PRICE>
##     <AVAILABILITY>012699</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Liverleaf</COMMON>
##     <BOTANICAL>Hepatica americana</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$3.99</PRICE>
##     <AVAILABILITY>010299</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Jack-In-The-Pulpit</COMMON>
##     <BOTANICAL>Arisaema triphyllum</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$3.23</PRICE>
##     <AVAILABILITY>020199</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Mayapple</COMMON>
##     <BOTANICAL>Podophyllum peltatum</BOTANICAL>
##     <ZONE>3</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$2.98</PRICE>
##     <AVAILABILITY>060599</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Phlox, Woodland</COMMON>
##     <BOTANICAL>Phlox divaricata</BOTANICAL>
##     <ZONE>3</ZONE>
##     <LIGHT>Sun or Shade</LIGHT>
##     <PRICE>$2.80</PRICE>
##     <AVAILABILITY>012299</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Phlox, Blue</COMMON>
##     <BOTANICAL>Phlox divaricata</BOTANICAL>
##     <ZONE>3</ZONE>
##     <LIGHT>Sun or Shade</LIGHT>
##     <PRICE>$5.59</PRICE>
##     <AVAILABILITY>021699</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Spring-Beauty</COMMON>
##     <BOTANICAL>Claytonia Virginica</BOTANICAL>
##     <ZONE>7</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$6.59</PRICE>
##     <AVAILABILITY>020199</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Trillium</COMMON>
##     <BOTANICAL>Trillium grandiflorum</BOTANICAL>
##     <ZONE>5</ZONE>
##     <LIGHT>Sun or Shade</LIGHT>
##     <PRICE>$3.90</PRICE>
##     <AVAILABILITY>042999</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Wake Robin</COMMON>
##     <BOTANICAL>Trillium grandiflorum</BOTANICAL>
##     <ZONE>5</ZONE>
##     <LIGHT>Sun or Shade</LIGHT>
##     <PRICE>$3.20</PRICE>
##     <AVAILABILITY>022199</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Violet, Dog-Tooth</COMMON>
##     <BOTANICAL>Erythronium americanum</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$9.04</PRICE>
##     <AVAILABILITY>020199</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Trout Lily</COMMON>
##     <BOTANICAL>Erythronium americanum</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$6.94</PRICE>
##     <AVAILABILITY>032499</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Adder's-Tongue</COMMON>
##     <BOTANICAL>Erythronium americanum</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$9.58</PRICE>
##     <AVAILABILITY>041399</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Anemone</COMMON>
##     <BOTANICAL>Anemone blanda</BOTANICAL>
##     <ZONE>6</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$8.86</PRICE>
##     <AVAILABILITY>122698</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Grecian Windflower</COMMON>
##     <BOTANICAL>Anemone blanda</BOTANICAL>
##     <ZONE>6</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$9.16</PRICE>
##     <AVAILABILITY>071099</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Bee Balm</COMMON>
##     <BOTANICAL>Monarda didyma</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$4.59</PRICE>
##     <AVAILABILITY>050399</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Bergamot</COMMON>
##     <BOTANICAL>Monarda didyma</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$7.16</PRICE>
##     <AVAILABILITY>042799</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Black-Eyed Susan</COMMON>
##     <BOTANICAL>Rudbeckia hirta</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Sunny</LIGHT>
##     <PRICE>$9.80</PRICE>
##     <AVAILABILITY>061899</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Buttercup</COMMON>
##     <BOTANICAL>Ranunculus</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$2.57</PRICE>
##     <AVAILABILITY>061099</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Crowfoot</COMMON>
##     <BOTANICAL>Ranunculus</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$9.34</PRICE>
##     <AVAILABILITY>040399</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Butterfly Weed</COMMON>
##     <BOTANICAL>Asclepias tuberosa</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Sunny</LIGHT>
##     <PRICE>$2.78</PRICE>
##     <AVAILABILITY>063099</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Cinquefoil</COMMON>
##     <BOTANICAL>Potentilla</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$7.06</PRICE>
##     <AVAILABILITY>052599</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Primrose</COMMON>
##     <BOTANICAL>Oenothera</BOTANICAL>
##     <ZONE>3 - 5</ZONE>
##     <LIGHT>Sunny</LIGHT>
##     <PRICE>$6.56</PRICE>
##     <AVAILABILITY>013099</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Gentian</COMMON>
##     <BOTANICAL>Gentiana</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Sun or Shade</LIGHT>
##     <PRICE>$7.81</PRICE>
##     <AVAILABILITY>051899</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Blue Gentian</COMMON>
##     <BOTANICAL>Gentiana</BOTANICAL>
##     <ZONE>4</ZONE>
##     <LIGHT>Sun or Shade</LIGHT>
##     <PRICE>$8.56</PRICE>
##     <AVAILABILITY>050299</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Jacob's Ladder</COMMON>
##     <BOTANICAL>Polemonium caeruleum</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$9.26</PRICE>
##     <AVAILABILITY>022199</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Greek Valerian</COMMON>
##     <BOTANICAL>Polemonium caeruleum</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$4.36</PRICE>
##     <AVAILABILITY>071499</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>California Poppy</COMMON>
##     <BOTANICAL>Eschscholzia californica</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Sun</LIGHT>
##     <PRICE>$7.89</PRICE>
##     <AVAILABILITY>032799</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Shooting Star</COMMON>
##     <BOTANICAL>Dodecatheon</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Mostly Shady</LIGHT>
##     <PRICE>$8.60</PRICE>
##     <AVAILABILITY>051399</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Snakeroot</COMMON>
##     <BOTANICAL>Cimicifuga</BOTANICAL>
##     <ZONE>Annual</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$5.63</PRICE>
##     <AVAILABILITY>071199</AVAILABILITY>
##   </PLANT>
##   <PLANT>
##     <COMMON>Cardinal Flower</COMMON>
##     <BOTANICAL>Lobelia cardinalis</BOTANICAL>
##     <ZONE>2</ZONE>
##     <LIGHT>Shade</LIGHT>
##     <PRICE>$3.02</PRICE>
##     <AVAILABILITY>022299</AVAILABILITY>
##   </PLANT>
## </CATALOG>
## 

Propriedades

class(a)
## [1] "XMLInternalDocument" "XMLAbstractDocument"
xmlSize(a)
## [1] 1
summary(a)
## $nameCounts
## 
## AVAILABILITY    BOTANICAL       COMMON        LIGHT        PLANT 
##           36           36           36           36           36 
##        PRICE         ZONE      CATALOG 
##           36           36            1 
## 
## $numNodes
## [1] 253

Conversão

b <- xmlToList(a)
str(b)
## List of 36
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Bloodroot"
##   ..$ BOTANICAL   : chr "Sanguinaria canadensis"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$2.44"
##   ..$ AVAILABILITY: chr "031599"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Columbine"
##   ..$ BOTANICAL   : chr "Aquilegia canadensis"
##   ..$ ZONE        : chr "3"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$9.37"
##   ..$ AVAILABILITY: chr "030699"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Marsh Marigold"
##   ..$ BOTANICAL   : chr "Caltha palustris"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Mostly Sunny"
##   ..$ PRICE       : chr "$6.81"
##   ..$ AVAILABILITY: chr "051799"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Cowslip"
##   ..$ BOTANICAL   : chr "Caltha palustris"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$9.90"
##   ..$ AVAILABILITY: chr "030699"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Dutchman's-Breeches"
##   ..$ BOTANICAL   : chr "Dicentra cucullaria"
##   ..$ ZONE        : chr "3"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$6.44"
##   ..$ AVAILABILITY: chr "012099"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Ginger, Wild"
##   ..$ BOTANICAL   : chr "Asarum canadense"
##   ..$ ZONE        : chr "3"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$9.03"
##   ..$ AVAILABILITY: chr "041899"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Hepatica"
##   ..$ BOTANICAL   : chr "Hepatica americana"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$4.45"
##   ..$ AVAILABILITY: chr "012699"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Liverleaf"
##   ..$ BOTANICAL   : chr "Hepatica americana"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$3.99"
##   ..$ AVAILABILITY: chr "010299"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Jack-In-The-Pulpit"
##   ..$ BOTANICAL   : chr "Arisaema triphyllum"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$3.23"
##   ..$ AVAILABILITY: chr "020199"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Mayapple"
##   ..$ BOTANICAL   : chr "Podophyllum peltatum"
##   ..$ ZONE        : chr "3"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$2.98"
##   ..$ AVAILABILITY: chr "060599"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Phlox, Woodland"
##   ..$ BOTANICAL   : chr "Phlox divaricata"
##   ..$ ZONE        : chr "3"
##   ..$ LIGHT       : chr "Sun or Shade"
##   ..$ PRICE       : chr "$2.80"
##   ..$ AVAILABILITY: chr "012299"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Phlox, Blue"
##   ..$ BOTANICAL   : chr "Phlox divaricata"
##   ..$ ZONE        : chr "3"
##   ..$ LIGHT       : chr "Sun or Shade"
##   ..$ PRICE       : chr "$5.59"
##   ..$ AVAILABILITY: chr "021699"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Spring-Beauty"
##   ..$ BOTANICAL   : chr "Claytonia Virginica"
##   ..$ ZONE        : chr "7"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$6.59"
##   ..$ AVAILABILITY: chr "020199"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Trillium"
##   ..$ BOTANICAL   : chr "Trillium grandiflorum"
##   ..$ ZONE        : chr "5"
##   ..$ LIGHT       : chr "Sun or Shade"
##   ..$ PRICE       : chr "$3.90"
##   ..$ AVAILABILITY: chr "042999"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Wake Robin"
##   ..$ BOTANICAL   : chr "Trillium grandiflorum"
##   ..$ ZONE        : chr "5"
##   ..$ LIGHT       : chr "Sun or Shade"
##   ..$ PRICE       : chr "$3.20"
##   ..$ AVAILABILITY: chr "022199"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Violet, Dog-Tooth"
##   ..$ BOTANICAL   : chr "Erythronium americanum"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$9.04"
##   ..$ AVAILABILITY: chr "020199"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Trout Lily"
##   ..$ BOTANICAL   : chr "Erythronium americanum"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$6.94"
##   ..$ AVAILABILITY: chr "032499"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Adder's-Tongue"
##   ..$ BOTANICAL   : chr "Erythronium americanum"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$9.58"
##   ..$ AVAILABILITY: chr "041399"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Anemone"
##   ..$ BOTANICAL   : chr "Anemone blanda"
##   ..$ ZONE        : chr "6"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$8.86"
##   ..$ AVAILABILITY: chr "122698"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Grecian Windflower"
##   ..$ BOTANICAL   : chr "Anemone blanda"
##   ..$ ZONE        : chr "6"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$9.16"
##   ..$ AVAILABILITY: chr "071099"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Bee Balm"
##   ..$ BOTANICAL   : chr "Monarda didyma"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$4.59"
##   ..$ AVAILABILITY: chr "050399"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Bergamot"
##   ..$ BOTANICAL   : chr "Monarda didyma"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$7.16"
##   ..$ AVAILABILITY: chr "042799"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Black-Eyed Susan"
##   ..$ BOTANICAL   : chr "Rudbeckia hirta"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Sunny"
##   ..$ PRICE       : chr "$9.80"
##   ..$ AVAILABILITY: chr "061899"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Buttercup"
##   ..$ BOTANICAL   : chr "Ranunculus"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$2.57"
##   ..$ AVAILABILITY: chr "061099"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Crowfoot"
##   ..$ BOTANICAL   : chr "Ranunculus"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$9.34"
##   ..$ AVAILABILITY: chr "040399"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Butterfly Weed"
##   ..$ BOTANICAL   : chr "Asclepias tuberosa"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Sunny"
##   ..$ PRICE       : chr "$2.78"
##   ..$ AVAILABILITY: chr "063099"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Cinquefoil"
##   ..$ BOTANICAL   : chr "Potentilla"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$7.06"
##   ..$ AVAILABILITY: chr "052599"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Primrose"
##   ..$ BOTANICAL   : chr "Oenothera"
##   ..$ ZONE        : chr "3 - 5"
##   ..$ LIGHT       : chr "Sunny"
##   ..$ PRICE       : chr "$6.56"
##   ..$ AVAILABILITY: chr "013099"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Gentian"
##   ..$ BOTANICAL   : chr "Gentiana"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Sun or Shade"
##   ..$ PRICE       : chr "$7.81"
##   ..$ AVAILABILITY: chr "051899"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Blue Gentian"
##   ..$ BOTANICAL   : chr "Gentiana"
##   ..$ ZONE        : chr "4"
##   ..$ LIGHT       : chr "Sun or Shade"
##   ..$ PRICE       : chr "$8.56"
##   ..$ AVAILABILITY: chr "050299"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Jacob's Ladder"
##   ..$ BOTANICAL   : chr "Polemonium caeruleum"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$9.26"
##   ..$ AVAILABILITY: chr "022199"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Greek Valerian"
##   ..$ BOTANICAL   : chr "Polemonium caeruleum"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$4.36"
##   ..$ AVAILABILITY: chr "071499"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "California Poppy"
##   ..$ BOTANICAL   : chr "Eschscholzia californica"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Sun"
##   ..$ PRICE       : chr "$7.89"
##   ..$ AVAILABILITY: chr "032799"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Shooting Star"
##   ..$ BOTANICAL   : chr "Dodecatheon"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Mostly Shady"
##   ..$ PRICE       : chr "$8.60"
##   ..$ AVAILABILITY: chr "051399"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Snakeroot"
##   ..$ BOTANICAL   : chr "Cimicifuga"
##   ..$ ZONE        : chr "Annual"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$5.63"
##   ..$ AVAILABILITY: chr "071199"
##  $ PLANT:List of 6
##   ..$ COMMON      : chr "Cardinal Flower"
##   ..$ BOTANICAL   : chr "Lobelia cardinalis"
##   ..$ ZONE        : chr "2"
##   ..$ LIGHT       : chr "Shade"
##   ..$ PRICE       : chr "$3.02"
##   ..$ AVAILABILITY: chr "022299"
c <- xmlToDataFrame(a)
str(c)
## 'data.frame':    36 obs. of  6 variables:
##  $ COMMON      : chr  "Bloodroot" "Columbine" "Marsh Marigold" "Cowslip" ...
##  $ BOTANICAL   : chr  "Sanguinaria canadensis" "Aquilegia canadensis" "Caltha palustris" "Caltha palustris" ...
##  $ ZONE        : chr  "4" "3" "4" "4" ...
##  $ LIGHT       : chr  "Mostly Shady" "Mostly Shady" "Mostly Sunny" "Mostly Shady" ...
##  $ PRICE       : chr  "$2.44" "$9.37" "$6.81" "$9.90" ...
##  $ AVAILABILITY: chr  "031599" "030699" "051799" "030699" ...

Valores e atributos

text <- '
<person gender="female" bithday="23-May">Ana Smith</person>'

a <- xmlParse(text, asText = TRUE)
str(a)
## Classes 'XMLInternalDocument', 'XMLAbstractDocument' <externalptr>
a
## <?xml version="1.0"?>
## <person gender="female" bithday="23-May">Ana Smith</person>
## 
b <- xmlRoot(a)
str(b)
## Classes 'XMLInternalElementNode', 'XMLInternalNode', 'XMLAbstractNode' <externalptr>
b
## <person gender="female" bithday="23-May">Ana Smith</person>
xmlAttrs(b)
##   gender  bithday 
## "female" "23-May"
xmlValue(b)
## [1] "Ana Smith"

Resumo

Referências

MUNZERT, S.; RUBBA, C.; MEIßNER, P.; NYHUIS, D. Automated Data Collection with R: A Practical Guide to Web Scraping and Text Mining. Wiley, 2015.