Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
取消R XML包生成的解析字符串?_R_Xml Parsing_Escaping - Fatal编程技术网

取消R XML包生成的解析字符串?

取消R XML包生成的解析字符串?,r,xml-parsing,escaping,R,Xml Parsing,Escaping,我一直在抄袭非常有用的回复,从web上删除一些html,并在R中使用它 XML包似乎对文本字符串中的非字母字符进行了彻底的转义。在XML或其他软件包中,有没有一种简单的方法可以反转通过XML传递数据时的部分/全部字符转义?我开始自己动手,但在遇到“众议员约阿奎·卡斯特罗”这样的案例后,我想“一定有更好的解决办法……” 为了清楚起见,使用XML包解析此HTML library(XML) apos_str <- c("<b>Tim O'Reilly</b>") a

我一直在抄袭非常有用的回复,从web上删除一些html,并在R中使用它

XML包似乎对文本字符串中的非字母字符进行了彻底的转义。在XML或其他软件包中,有没有一种简单的方法可以反转通过XML传递数据时的部分/全部字符转义?我开始自己动手,但在遇到“众议员约阿奎·卡斯特罗”这样的案例后,我想“一定有更好的解决办法……”

为了清楚起见,使用XML包解析此HTML

 library(XML)
 apos_str <- c("<b>Tim O'Reilly</b>")
 apos_str.parsed <- htmlTreeParse(apos_str, error=function(...){})
 apos_str.parsed$children$html[[1]][[1]]
然后把它变成

'<b>Tim O'Reilly</b>'
'Tim O'Reilly'
编辑为了澄清,从下面的评论中,我了解了如何针对撇号或我在数据中看到的任何其他字符的特殊情况进行编辑。我要找的是一个软件包,其中有人更普遍地解决了这个问题

到目前为止我所做的研究:

-阅读我在转义时在XML中找到的所有内容

-在起重机上寻找一个有前途的包裹

-在这里搜索“unescape[R]”和“reverse escape[R]”等等。
没有任何进展,所以我想我会把问题带到这里。

我不确定我是否理解困难所在。替换的字符串处理是使用基本正则表达式函数完成的:sub、gsub、regexpr、gregexpr

?sub # the same help page will also discuss 'gsub'
txt <- '<b>Tim O&apos;Reilly</b>'
sub("\\&apos;", "'", txt)
[1] "<b>Tim O'Reilly</b>"
?sub#同一帮助页面还将讨论“gsub”

对不起,我不清楚。撇号是非常简单的,我可以通过sub或string来实现;我基本上想知道是否有更好的解决方案可以处理许多不同的转义字符(比如“JoaquÃn Castro”->“Joaquín Castro”),所以,确切地说,我想问是否有人已经这样做了,包括我不会马上想到的奇怪边缘案例。显然,我在问题中没有把这一点说清楚。
'<b>Tim O'Reilly</b>'
?sub # the same help page will also discuss 'gsub'
txt <- '<b>Tim O&apos;Reilly</b>'
sub("\\&apos;", "'", txt)
[1] "<b>Tim O'Reilly</b>"