r中的xml:提取节点集的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") 我不
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)