Я застрял в чем-то довольно простом, но очень раздражающем:
У меня есть 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)
Спасибо за помощь!
Val