读取R中的xml文本时,避免将单词串联在一起

时间:2019-05-02 21:35:25

标签: r xml

我正在使用R使用tei-xml中的长文本文档。我想处理原始文本以进行单词计数等。

当我尝试

library(xml2)

x <- read_xml("<text><p>Some text</p><p>another bit of text</p>
              <p>and some more 
              text.</p></text>")
x_text <- xml_text(x)
x_text
# [1] "Some textanother bit of textand some more \n              text."

返回的文本有两个问题。

1)除去xml标记后,单词被串联起来。如何避免使用“ textanother”?

2)换行符显示为\ n。使用grep可以轻松解决此问题,但我想知道是否可以一开始就避免它。

1 个答案:

答案 0 :(得分:1)

您可以选择所有文本节点,然后将它们粘贴在一起,以便在它们之间留出一个空格

paste(xml_text(xml_find_all(x, "//text()")), collapse=" ")

或者您可以避免粘贴以使其分开。 xml_text可以修剪空格,但不会从换行符所在的字符串中间删除空格。如果您只想用一个空格删除多个空白字符,则可以

gsub("\\s+", " ",paste(xml_text(xml_find_all(x, "//text()")), collapse=" "))
# [1] "Some text another bit of text and some more text."