我在使用R函数xpathSApply
来选择某些子节点。目前,我只能选择一个子节点,例如
xpathSApply(dat, "//Establishment[AddressLine3='Mumbles']/BusinessName",xmlValue)
这给我列出了子节点
AddressLine3 = Mumbles
的餐馆列表。我还有一个感兴趣的子节点称为Rating(完整路径为//Establishment/Rating
)。我想做的是在一个xPath查询中带回一对值,即BusinessName
和Rating
子节点。能做到吗? 最佳答案
您可以使用“ |”分隔这两个查询。但是显然它将返回同一向量中的值,然后您必须对结果进行格式化。
url <- "http://ratings.food.gov.uk/OpenDataFiles/FHRS568en-GB.xml"
doc <- xmlParse(url)
datas <- xpathSApply(doc, "//EstablishmentDetail[AddressLine3='Mumbles']/BusinessName | //EstablishmentDetail[AddressLine3='Mumbles']/RatingValue", xmlValue)
data.frame(BusinessName = datas[seq(1, 117, by = 2)], RatingValue = datas[-seq(1, 117, by = 2)])