如何在R中的XML元素中保留换行符

时间:2018-02-21 10:33:22

标签: r xml

我尝试获取以下xml结构的 xmlValue

<span class="a">ABC<br/>XYZ</span>

我想保留br linebreak标记,但 xmlValue 似乎删除了换行符:

library(XML)
doc = xmlTreeParse("sample.xml", useInternal = TRUE)
top<-xmlRoot(doc)
xmlValue(top)

[1] "ABCXYZ"

有没有办法让输出包括换行符?

[1] "ABC
     XYZ"

或者

[1] "ABC\nXYZ"

1 个答案:

答案 0 :(得分:2)

我希望其他人能为这个问题提供更好的解决方案。这是一个使用xml2包的解决方案(我比xml更喜欢这个)。 在此解决方案中,我使用基数R中的gsub函数将所有<br/>标记替换为行返回字符/n

library(xml2)

#Read in as a xml document
text<-read_xml('<span class="a">ABC<br/>XYZ</span>')

#substitute /n in for the line breaks.  
#gsub returns a character string, need to use read_xml to convert back to a xml document
two<-read_xml(gsub("<br/>", "/n", text))
#find the desired node(s)
xml_text(xml_find_all(two, "//span"))

希望这有帮助。