我正在使用Nokogiri來搜索從API接收到的XML。在訪問文本方法之前檢查Nokogiri對象是否爲零
fiber = doc.xpath("/*[name()='food']/*[name()='servings']/*
[name()='serving']/*[name()='fiber']").first.text
雖然有時候,響應中缺少子元素(例如光纖)。在這種情況下,Nokogiri返回一個nil對象,我的代碼會拋出相應的異常(nil:NilClass中未定義的方法'text'),因爲我試圖訪問nil對象的'text'方法。
在實際嘗試調用其'文本'方法之前,檢查子元素(例如光纖)是否存在的乾淨而快速的方法是什麼?如果它不存在,我想將值設置爲0,我也這樣做了其他幾個子元素(如卡路里,碳水化合物等)
完美工作。事實證明,我不需要使用「默認」選項,因爲'nil + x = x',這就是我需要的結果。 –