私はNokogiriを使用して、APIから受け取ったXMLを検索しています。テキストメソッドにアクセスする前に、Nokogiriオブジェクトがnilかどうかをチェックします
fiber = doc.xpath("/*[name()='food']/*[name()='servings']/*
[name()='serving']/*[name()='fiber']").first.text
子供の要素(例:繊維)が応答に欠落していることがあります。この場合、Nokogiriはnilオブジェクトを返し、私のコードはnilオブジェクトの 'text'メソッドにアクセスしようとしているため、適切な例外(nil:NilClassの未定義メソッド `text ')をスローします。
実際に 'テキスト'メソッドを呼び出す前に子要素(ファイバーなど)が存在するかどうかを確認するクリーンで迅速な方法は何ですか?それが存在しない場合、私はまた、いくつかの他の子要素のために(例えば、カロリー、炭水化物など)これをやって0に
完全に作業しました。それは、 'nil + x = x'なので、私は 'default'オプションを使う必要がないことが判明しました。 –