【发布时间】:2017-01-18 21:57:20
【问题描述】:
我有以下示例 XML:
<body>
<div class="row">
<div class="column">
<span class="title">Color</span>
</div>
<div class="column property">Blue</div>
</div>
<div class="row">
<div class="column">
<span class="title">Shape</span>
</div>
<div class="column property">Square</div>
</div>
</body>
如何使用 R 将每个标题与其属性和输出配对:
Color = Blue
Shape = Square
我尝试了以下脚本,但标题周围有 XML 标记并且缺少属性:
library(XML)
getDetails <- function(id) {
html <- htmlTreeParse( "exampleXML.html" ,useInternal = TRUE)
xpathSApply( html , "//div[@class='row']" , function(row) {
print( xmlElementsByTagName(row, "span", recursive = TRUE) )
})
}
getDetails()
也没有运气:
library(XML) #to install use: install.packages("XML")
library(xml2) #to install use: install.packages("xml2")
library(magrittr) #to install use: install.packages("magrittr")
extract_info <- function(x){
title <- x %>% xml_find_first(".//span[@class='title']") %>% xml_text
property <- x %>% xml_find_first(".//div[@class='column property']") %>% xml_text
setNames(property, title)
}
html <- htmlTreeParse( "exampleXML.html" ,useInternal = TRUE)
html %>% xml_find_all("//div[@class='row']") %>% extract_info
UseMethod("xml_find_all") 中的错误: 'xml_find_all' 没有适用于类“c('HTMLInternalDocument', 'HTMLInternalDocument', 'XMLInternalDocument', 'XMLAbstractDocument')”的对象的适用方法
【问题讨论】:
标签: r xml xml-parsing