0

HTTParty と multi_xml に依存する gem を使用すると、次のエラーが発生します。

MultiXml::ParseError: xmlParseCharRef: invalid xmlChar value 25
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/multi_xml-0.5.5/lib/multi_xml/parsers/nokogiri.rb:15:in `parse'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/multi_xml-0.5.5/lib/multi_xml.rb:138:in `parse'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/parser.rb:111:in `xml'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/parser.rb:140:in `parse_supported_format'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/parser.rb:102:in `parse'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/parser.rb:66:in `call'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/request.rb:241:in `parse_response'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/request.rb:211:in `block in handle_response'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/response.rb:18:in `call'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/response.rb:18:in `parsed_response'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/httparty-0.8.3/lib/httparty/response.rb:51:in `method_missing'
    from /Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/commission_junction-1.5.0/lib/commission_junction.rb:146:in `link_search'

これはエンコーディングの問題か、ライブラリの 1 つが気に入らない文字が原因のようです。

私が使用している宝石は Commission_junction です。この問題を解決するには、フォークしてエンコーディング オプションを指定する必要がありますか? ここにあるコードを掘り下げています。

最新の Commission_junction と HTTParty gem を使用してみましたが、どうにもなりません。

4

2 に答える 2

1

私は Commission_junction gem の作者です。バージョン 1.7.0 をリリースしました。これには、"ox" gem の使用に関する Chad Johnson の修正が含まれています。

于 2014-02-18T02:03:21.677 に答える
0

プロジェクトの Gemfile に "ox" gem (XML パーサー) を追加するだけで、これを解決することができました。

于 2013-11-03T08:22:51.430 に答える