使用Xpath从XML解析特定部分

时间:2015-05-28 13:43:24

标签: ruby-on-rails ruby xml xpath nokogiri

我想知道如何使用" if"当我想从XML文件解析特定部分时的条件。这是我要解析的XML部分:

   <match date="13.06.2014" id="3551904" status="16:00" time="16:00">
    <home name="Mexico"/>
    <away name="Cameroon"/>
    <odds>
     <type id="768" name="Over/Under">...</type>
     <type id="769" name="Handicap">
     <bookmaker id="769" name="Betwin">
     <bookmaker id="779" name="10Bet">
      <handicap name="-0.75">
        <odd name="1" value="2.43"/>
      </handicap>
      <handicap name="+0.75">
        <odd name="2" value="1.53"/>
      </handicap>
      <handicap name="-0.5">
        <odd name="1" value="2.09"/>
      </handicap>
      <handicap name="+0.5">
        <odd name="2" value="1.78"/>
      </handicap>

控制器:

        def new
        f = File.open("odds_sample.xml")
        doc = Nokogiri::XML(f)
      @test = doc.xpath("/odds/league/matches/match[./odds/type/bookmaker]")

查看:

       <tbody>
        <% @test.each do |w| %>
  <tr>
    <td><%= w.at_xpath("./home")['name'] %></td>
    <td>VS</td>
             <td><%= w.at_xpath("./away")['name'] %></td>
             <td><%= w.at("bookmaker").children.attr("value") %></td>
             <td><%= w.at("bookmaker").children[1].attr("value") %>             </td>
             <td><%= w.at("bookmaker").children[2].attr("value") %></td>

  </tr>
        <% end %>
        </tbody>

假设我总是希望获得&#34;奇数值&#34;最近2为&#34;奇数名称= 1&#34;,我怎么用红宝石解析这个?谢谢。

0 个答案:

没有答案