library("XML")
library("dplyr")
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library("magrittr")
library("knitr")
library("xtable")
docV <- xmlParse(fileNameV, useInternalNodes = TRUE)
### convert xmldf into List
docL <- xmlToList(docV)
Key.cli <- c()
Paese <- c()
PI <- c()
Key.ft <- c()
Key1 <- c()
Tipo <- c()
DataFt <- c()
NumFt <- c()
Key.el <- c()
Key2 <- c()
Key3 <- c()
Imponibile <- c()
Imposta <- c()
Aliquota <- c()
Nat.Esig <- c()
for (i in 2:length(docL$DTE)) {
Key.cli <- c(Key.cli, i-1)
Paese <- c(Paese, docL$DTE[[i]][[1]][[1]][[1]])
PI <- c(PI, docL$DTE[[i]][[1]][[1]][[2]])
for (j in 3:length(docL$DTE[[i]])) {
Key.ft <- c(Key.ft, j-2)
Key1 <- c(Key1, i-1)
Tipo <- c(Tipo, docL$DTE[[i]][[j]][[1]][[1]])
DataFt <- c(DataFt, docL$DTE[[i]][[j]][[1]][[2]])
NumFt <-c(NumFt, docL$DTE[[i]][[j]][[1]][[3]])
for (jj in 2:length(docL$DTE[[i]][[j]])) {
Key2 <- c(Key2, i-1)
Key3 <- c(Key3, j-2)
Key.el <- c(Key.el, jj-1)
Imponibile <- c(Imponibile, docL$DTE[[i]][[j]][[jj]][[1]])
Imposta <- c(Imposta, docL$DTE[[i]][[j]][[jj]][[2]][[1]])
Aliquota <- c(Aliquota, docL$DTE[[i]][[j]][[jj]][[2]][[2]])
Nat.Esig <- c(Nat.Esig, docL$DTE[[i]][[j]][[jj]][[3]])
}
}
}
df.cli <- data.frame( "Key.cli" = Key.cli,
"ID" = Paese,
"PI" = PI
)
df.ft <- data.frame( "Key.cli" = Key1,
"Key.ft" = Key.ft,
"Tipo" = Tipo,
"DataFt" = as.Date(DataFt),
"NumFt" = NumFt
)
df.el <- data.frame( "Key.cli" = Key2,
"Key.ft" = Key3,
"Key.el" = Key.el,
"Imponibile" = as.double(Imponibile),
"Imposta" = as.double(Imposta),
"Aliquota" = Aliquota,
"N.E." = Nat.Esig
)
tab <- inner_join(df.cli, df.ft)
## Joining, by = "Key.cli"
tab2 <- inner_join(tab, df.el)
## Joining, by = c("Key.cli", "Key.ft")
tab2$Key.cli <- NULL
tab2$Key.ft <- NULL
tab2$Key.el <- NULL
kable(tab2, format = "pandoc", digits = 2,
align = c('c','c','c','c','c','r','r','c','c'),
format.args = list(big.mark=".",
decimal.mark = "," ))
| IT |
00000000001 |
TD01 |
2017-01-01 |
1 |
100 |
22 |
22.00 |
I |
| IT |
00000000001 |
TD01 |
2017-01-01 |
1 |
10 |
0 |
0.00 |
N4 |