rub*_*iii 2 ruby regex xml hpricot
我需要删除XML标记之间的任何内容,尤其是空格和换行符.
例如,从以下位置删除空格和新闻线:
</ node> \n <node id ="whatever">
得到:
</ node> <node id ="whatever">
这不是用于手动解析XML,而是用于在XML工具被解析之前准备XML数据.更具体地说,我正在使用Hpricot(Ruby)来解析XML,不幸的是我们目前只停留在0.6.164版本上,所以...我不知道更新的版本,但是这个版本经常会返回奇怪的节点(对象)只包含空格和换行符.因此,我们的想法是在将XML转换为Hpricot文档之前清理它.备选解决方案赞赏
测试中的一个例子:NoMethodError:未定义的方法`children'代表"\n":Hpricot :: Text
这里有趣的部分不是NoMethodError,因为它很好,但是Hpricot :: Text元素只包含一个换行符而已.
解决方案是选择所有"空白"文本节点并将其删除.
doc = Nokogiri(xml_source)
doc.xpath('//text()[not(normalize-space())]').remove
Run Code Online (Sandbox Code Playgroud)