1

您好 R 的 XML 包用户,

我在解析 XML 时遇到了一个奇怪的错误。它与在解析 XML 文件时遇到诸如 mdash 和 ndash 之类的 HTML 实体有关。

这是我使用的代码:

InText = readLines(xmlFileName,n=-1)
Text = xmlValue(xmlRoot(xmlTreeParse(InText,trim=FALSE)))

我目前正在使用以下方法消除这些实体,例如 mdash 和 ndash

InText = gsub("\\&mdash"," ",InText);
InText = gsub("\\&ndash"," ",InText);

但这真的很乏味,因为我看到了可能的 HTML.4.0 实体列表。

关于如何在解析 XML 文件时消除这些问题的任何想法

非常感谢您的帮助和想法 Shivani

4

2 回答 2

1

如果您只是想删除所有命名的 HTML 实体,请使用正则表达式:

library("XML")

InText <- "<html>\
<head>\
    <title>Test &amp; Test again</title>\
</head>\
    <body>Hello &nbsp; world</body>\
</html>"

InText <- gsub("\\&[^;]+;","",InText)

Text <-  xmlValue(xmlRoot(xmlTreeParse(InText,trim=FALSE)))
于 2012-05-28T06:09:21.560 回答
1

在 XML 包中尝试 readHTML;它有强大的方法可以处理很多这样的情况。另请参阅使用 XML 包将 html 表抓取到 R 数据帧中

于 2012-05-28T07:44:38.037 回答