Rails - 从空格和换行符中删除xml导入

时间:2010-03-25 12:41:04

标签: ruby-on-rails xml whitespace nokogiri line-breaks

我遇到了一些非常简单但非常烦人的事情: 我有一个带有一个节点的xml文件,其中的内容包括换行符和空格。 可悲的是我无法改变xml。

<?xml version="1.0" encoding="utf-8" ?>
<ProductFeed>

ACME Ltd.          Fooproduct          Foo Root ::酒吧类别          

我到达节点并且可以毫无困难地从中读取:

url = "http://feeds.somefeed/feed.xml.gz"
@source = open((url), :http_basic_authentication=>["USER", "PW"])
@gz = Zlib::GzipReader.new(@source)
@result = @gz.read
@doc = Nokogiri::XML(@result)
@doc.xpath("/ProductFeed/Vendors/Vendor").each do |manuf|
vendor = manuf.css("Name").first.text
manuf.xpath("//child::Product").each do |product|   

  product_name = product.css("Name").text
  foocat = product.css("Category").text

  puts "#{vendor} ---- #{product_name} ---- #{foocat} "
 end
end

这导致:

ACME Ltd. ---- Fooproduct ----
                                      Foo Root :: Bar Category

显然,product.css(“Category”)返回的字符串中有换行符和制表位或空格.text。

是否有人知道如何从此处的换行符和点击或空格中删除结果?

或者我可以在下一步中做到这一点,我会像'

那样找到'foocat'
barcat = Category.find_by_foocat(foocat)

感谢您的帮助!

缬氨酸

1 个答案:

答案 0 :(得分:0)

您可以use XSLT删除所有不必要的字符。