R xml遇到并处理xml文件中的html实体

时间:2012-05-27 20:27:57

标签: html xml r xml-parsing html-entities

Hello 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

2 个答案:

答案 0 :(得分: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)))

答案 1 :(得分:1)

在XML包中尝试readHTML;它有强大的方法可以处理这些案例中的一些。另请参阅Scraping html tables into R data frames using the XML package