我有一个.txt
格式的XML文件。
我想以这种方式拆分该文件,使之仅获取文本之间的内容<TEXT>
,</TEXT>
然后将其另存为其他文本文件或数据框。谁能帮我在R中做到这一点?
我尝试使用grep函数提取文本,但是我无法实现我的目标。我是文本挖掘的新手,如果有人能在这方面帮助我,那将是非常不错的。
test_2=grep("[^<TEXT>] [$</TEXT>]",test,ignore.case=T,value=T)
首先我做了
install.packages("XML")
library(XML)
现在这有点棘手,因为您的文档(如上所示)没有根。如果你把它包起来
<mydoc>
...
</mydoc>
或类似的东西,您可以使用以下代码:
doc <- xmlRoot(xmlTreeParse("text.xml"))
df <- vector(length=length(doc))
for (i in 1:length(doc))
{
text_node <- doc[[i]]$children$text
text <- xmlToList(text_node)
df[i] <- text
}
现在,假设您无法添加我在上面所做的人工根。您仍然可以将其解析为HTML,它更能容忍无效文档。在本示例中,我还使用了XPath(您也可以在上面的示例中使用):
doc <- htmlTreeParse("text_noroot.xml")
content <- doc$children$html
textnodes <- getNodeSet(content, "//text")
df <- vector(length=length(textnodes))
for (i in 1:length(textnodes))
{
text_node <- textnodes[[i]]$children$text
text <- xmlToList(text_node)
df[i] <- text
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句