====== read able data with names ====== * file: read_tag-table(with names).r * document page: 39 \\ **code:** #----open XML package----------------------------------------------------------- library(XML) #----read data between an XML tag----------------------------------------------- filename = "D:/Heidi/Master/R_Daten/XML/XML_with_inserted_data.xml" tag = "//theta" doc = xmlTreeParse(filename, useInternal = TRUE) ch = getNodeSet(doc, tag) subDoc = xmlDoc(ch[[1]]) tagData <- xpathApply(subDoc, tag, xmlValue) free(subDoc) #print(tagData, indent=FALSE) #----convert string data (table with names) to a numeric matrix----------------- #----split string---- tagData2 <- as.character(tagData) tagData3 <- strsplit(tagData2, "\n") tagMatrix <- as.matrix(as.data.frame(tagData3)) tagMatrix <- gsub(" + ", " ", tagMatrix) # trim white space #--------names-------- Names <- tagMatrix[9] Names <- strsplit(Names, " ") Names <- as.matrix(as.data.frame(Names)) Names <- Names[3:(nrow(Names)-2)] Names #--------data-------- tagMatrix <- tagMatrix[11:nrow(tagMatrix)] Data <- strsplit(tagMatrix, " ") #----to numeric matrix---- Row <- length(Data) Matrix <- as.matrix(as.data.frame(Data[1])) Matrix <- Matrix[3:(nrow(Matrix)-2)] Matrix <- as.numeric(Matrix) numericMatrix <- t(as.matrix(Matrix)) for(n in 2:(Row)){ nextrow <- as.matrix(as.data.frame(Data[n])) nextrow <- nextrow[3:(nrow(nextrow)-2)] nextrow <- as.numeric(nextrow) numericMatrix <- rbind(numericMatrix, t(as.matrix(nextrow))) } numericMatrix # numericTable <- as.table(numericMatrix) # numericTable