r中的xml:提取节点集的xml值

r中的xml:提取节点集的xml值,xml,r,web-scraping,Xml,R,Web Scraping,我试图从(相当大的)文档中提取某些xml值。因为我只对某些节点感兴趣,所以创建了子集 library(XML) data.raw <- xmlParse(file="in/data.xml", encoding="UTF-8") data.top <- xmlRoot(data.raw) subset.wkr67 <- getNodeSet(doc=data.top, "//wahl[@jahr='13']/gebiet[@schluessel='67']/wvt") 我不

我试图从(相当大的)文档中提取某些xml值。因为我只对某些节点感兴趣,所以创建了子集

library(XML)
data.raw <- xmlParse(file="in/data.xml", encoding="UTF-8")
data.top <- xmlRoot(data.raw)
subset.wkr67 <-  getNodeSet(doc=data.top, "//wahl[@jahr='13']/gebiet[@schluessel='67']/wvt")
我不知何故提取了太多的信息。(每个元素基本上都是粘贴在一起的所有元素的值。13的长度可以,适合数据。) (如果我进一步向R命令添加选项“recursive=FALSE”,我的结果将是一个长度相同的向量,只包含字符。)


如何仅提取“stimmen”元素的第一个值?(我的情况是21478)谢谢你的帮助

假设xml文件中只有显示的数据(带有标题),请尝试以下操作:

library(XML)
doc = xmlParseDoc("wahl.xml")
xpathSApply(doc,"/wvt/ergebnis",xmlAttrs) 
xpathSApply(doc,"/wvt/ergebnis/stimmen",xmlValue)
接下来应该对数据帧进行一些转换,以获得每个投票集的描述符

sapply(subset.wkr67, xmlValue, '/wvt/ergebnis[@kurz="STWVT"]/stimmen') 
[1] "21478#0033CC57.625835#0033CC69.4" "6640#FFDFDF17.86308#FFDFDF17.0"   "4682#99990012.61410#FFFF993.8"    "2663#CCFFCC7.11888#CCFFCC5.1"    
[5] "708#C979E31.9848#B953EC2.3"       "220.1"                            "3731.0"                           "830.2"                           
[9] "2140.6"                           "1520.4"                           "1220.3"                           "542#F5A5541.5541#F5A5541.5"      
[13] "593#ECF0EC1.6373#ECF0EC1.0" 
library(XML)
doc = xmlParseDoc("wahl.xml")
xpathSApply(doc,"/wvt/ergebnis",xmlAttrs) 
xpathSApply(doc,"/wvt/ergebnis/stimmen",xmlValue)