Вопрос по r – удаление данных с тегами из вектора

0

У меня есть строковый вектор, который содержит HTML-теги, например

<code>  abc<-""welcome <span class=\"r\"><a href=\"abc\">abc</a></span> Have fun!""
</code>

Я хочу удалить эти теги и получить следующий вектор

например

<code>       abc<-"welcome Have fun"
</code>

Ваш Ответ

2   ответа
1

htmlParse или жеhtmlTreeParse. You can then convert it to text, i.e., strip all the tags, with xmlValue.

abc <- "welcome <span class=\"r\"><a href=\"abc\">abc</a></span> Have fun!"
library(XML)
#doc <- htmlParse(abc, asText=TRUE)
doc <- htmlTreeParse(abc, asText=TRUE)
xmlValue( xmlRoot(doc) )

Если вы также хотите удалить содержимое ссылок, ты можешь использоватьxmlDOMApply преобразовать дерево XML.

f <- function(x) if(xmlName(x) == "span") xmlTextNode(" ") else x
d <- xmlDOMApply( xmlRoot(doc), f )
xmlValue(d)
1

Пытаться

> gsub("(<[^>]*>)","",abc)

то, что это говорит, заменяет каждый случай & lt; за ним следует все, что не является & gt; до & gt; ни с чем & quot;

Вы не можете просто сделатьgsub("<.*>","",abc) потому что регулярные выражения жадные, и. * будет соответствовать до последнего & gt; в вашем тексте (и вы потеряли 'abc' в вашем примере).

Это решение может не сработать, если вы получили & gt; в ваших тегах - но есть<foo class=">" > законно? Несомненно, кто-то придет с другим ответом, который включает анализ HTML с помощью тяжеловесного пакета XML.

Вы должны будете вставить этот пример в вопрос, потому что комментарии имеют тенденцию переформатировать текст и портить ...
спасибо Spacedman, если вектор содержит гиперссылку, например & lt; -c ("привет"abc.com") как мы можем это убрать jan5

Похожие вопросы