我遇到了一些非常简单但非常烦人的事情:我有一个带有一个节点的 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)
感谢您的帮助!
瓦尔