Не уверен, что я использую Nokogiri в Ruby правильно - PullRequest
0 голосов
/ 08 сентября 2011

Мой код возвращает это: \ "1.12.0.1058 \", и я не уверен, должен ли я удалять \ "вручную или как. Gsub не удаляет символы.

Код:

response = RestClient.get(@deathburritoapp_url)
        xml_doc = Nokogiri::XML(response)
        @app_packages = xml_doc.xpath("//applicationPackages//applicationPackage")
        if @app_packages != nil
          @app_packages.each do |app_pack|
            @package_id = app_pack.attribute("id").text.to_i
            @version    = app_pack.at_xpath("./version").text
            @version    = @version.gsub(/"\\/, ' ')
            @result     = "Package Id: " + @package_id.inspect + "; Version: " + @version.inspect
            Rails.logger.debug("Results: " + @result.inspect)
          end

XML:

<applicationPackages>
  <applicationPackage id="229">
    <application key="deathburrito" id="2">
        <name>deathBURRITO</name> 
    </application>
    <version>0.13.1 SNAPSHOT</version> 
    <packageType id="1">
        <name>war</name> 
    </packageType>
    <architecture id="5">
        <name>java</name> 
    </architecture>
  </applicationPackage>
  <applicationPackage id="98">
      <application key="deathburrito" id="2">
        <name>deathBURRITO</name> 
      </application>
      <version>1.10.0 SNAPSHOT</version> 
      <packageType id="1">
        <name>war</name> 
      </packageType>
      <architecture id="5">
        <name>java</name> 
      </architecture>
  </applicationPackage>
</applicationPackages>

Результаты отладки:

Результаты: "Идентификатор пакета: 229;Версия: \ "0.13.1-SNAPSHOT \" "

1 Ответ

3 голосов
/ 08 сентября 2011

Это просто inspect делает свое дело:

ruby-1.9.2-p180 :002 > "foo".inspect
 => "\"foo\"" 

Версия - это просто обычная рубиновая строка, вам не нужно делать ничего особенного.

...