我尝试获取以下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"
答案 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"))
希望这有帮助。