xml - 在R中的<td>元素内解析<br>

标签 xml r xpath

我正在尝试解析一些用R编写的不幸的html,但遇到了一些障碍。

表结构是这样的,我需要在单独字段中的2个字符串仅由标签分隔。

<td  align="left"valign="top"><font face="Arial" size="2">Frederick Henry    Bay,  Australia<br>Ansett ANA


我需要将位置和运算符分开,但似乎无法找到一种方法,而不会变得很笨拙。我认为首先必须有一种正确解析HTML的方法。

到目前为止,我一直在解析如下

# Read and parse HTML file
html.raw = htmlTreeParse(url,useInternal = TRUE)

# Extract HTML.
html.parse = unlist(xpathApply(html.raw, '//td', xmlValue))


但这会丢弃br标签,并迫使我使用str_split来根据
“?<= [a-z] | \))(?== [A-Z]”

但这是不可靠的。有任何想法吗?

最佳答案

这个怎么样

test<-'<html><td  align="left"valign="top"><font face="Arial" size="2">Frederick Henry    Bay,  Australia<br>Ansett ANA</td><td  align="left"valign="top"><font face="Arial" size="2">Liverpool, England<br>Queen BRB</td></html>'

library(XML)
html.raw = htmlTreeParse(test,useInternal = TRUE)
xpathApply(html.raw, '//td', function(x)
    xpathSApply(x,".//text()", xmlValue)
)


哪个返回

[[1]]
[1] "Frederick Henry    Bay,  Australia" "Ansett ANA"                        

[[2]]
[1] "Liverpool, England" "Queen BRB"   


请注意,每个td都变成列表中的一个元素,并且列表由长度为2的向量组成。

关于xml - 在R中的<td>元素内解析<br>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29280246/

相关文章:

ios - 用于填充 TableViewController 的本地 XML 文件

r - ggplot斜体标题的一部分,并将文本分成两行

r - 默认名称连接

Python:基于绝对XPath解析HTML元素

javascript - XPath 可以用来搜索 &lt;script&gt; block 吗?

python - 使用XPath获取网页数据

mysql - 读取XML数据并将其保存到symfony 4中的mysql数据库

java - 尝试传输到 irs a2a 系统时收到 TPE 错误 1105

xml - XSLT 为什么是 出现在我的 hrefs 中?

r - 调整 ggplot2 中轴文本的 "margin"空间