0

私は非常に単純ですが、本当に面倒なことに行き詰まっています.1つのノードを持つ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)

助けてくれてありがとう!

ヴァル

4

1 に答える 1

0

XSLTを使用して、不要な文字をすべて削除できます。

于 2010-03-25T12:57:13.583 に答える