質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • XML

    645questions

    XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

  • XPath(XML Path)

    71questions

    XML Path Language (XPath; XMLパス言語)は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文の事をいいます。XPathはXMLとは別の構文を使用します。XMLドキュメントの抽象、論理ストラクチャ上で動作します。

  • Google スプレッドシート

    4questions

Xpathで指定した要素を抽出する方法

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 136

horse623

score 2

 前提・実現したいこと

http://shirayuca.github.io/blog/2014/07/27/recipe.html
上記リンク先の記事を見て、別のレシピサイトであるところのNadia(https://oceans-nadia.com/)でも同じことをやってみたいと思い、質問をさせて頂きました。

以下のようなxmlの中から原材料及びその分量を、醤油大さじ3、酒大さじ2、etc...のように一つずつテキスト形式で取得したいと考えています. 
今回、レシピ画像の抽出はせずに、レシピ名と原材料とその分量だけを抽出したいです。
そのようなことを実現できるXpathの指定方法はどのような形になるのでしょうか? 
教えていただきたいです.

 発生している問題・エラーメッセージ

 該当のソースコード

...
...
</div>

<div class="ingredientArea">
<p class="recipeTime"><time datetime="PT15M" itemprop="cookTime">調理時間:15分(漬け込み時間省く)</time></p>

<p class="ingredient" itemprop="yield"><span>材料2人分</span></p>
</div>

<table>
<tr class="ingre_group_A" itemprop="ingredient"  itemscope itemtype="http://data-vocabulary.org/RecipeIngredient">
<td class="group">A</td>
<td class="group_ingredient"><div itemprop="name"><a href="https://oceans-nadia.com/search?q=%E9%86%A4%E6%B2%B9">醤油</a></div></td>
<td itemprop="amount" class="group_amount">大さじ3</td>
</tr>
<tr class="ingre_group_A" itemprop="ingredient"  itemscope itemtype="http://data-vocabulary.org/RecipeIngredient">
<td class="group">A</td>
<td class="group_ingredient"><div itemprop="name"><a href="https://oceans-nadia.com/search?q=%E9%85%92">酒</a></div></td>
<td itemprop="amount" class="group_amount">大さじ2</td>
</tr>
<tr class="ingre_group_A" itemprop="ingredient"  itemscope itemtype="http://data-vocabulary.org/RecipeIngredient">
<td class="group">A</td>
<td class="group_ingredient"><div itemprop="name"><a href="https://oceans-nadia.com/search?q=%E6%9C%AC%E3%81%BF%E3%82%8A%E3%82%93">本みりん</a></div></td>
<td itemprop="amount" class="group_amount">大さじ1</td>
</tr>
<tr class="ingre_group_A" itemprop="ingredient"  itemscope itemtype="http://data-vocabulary.org/RecipeIngredient">
<td class="group">A</td>
<td class="group_ingredient"><div itemprop="name"><a href="https://oceans-nadia.com/search?q=%E3%83%90%E3%83%AB%E3%82%B5%E3%83%9F%E3%82%B3%E9%85%A2">バルサミコ酢</a></div></td>
<td itemprop="amount" class="group_amount">小さじ1</td>
</tr>
<tr class="ingre_group_ " itemprop="ingredient"  itemscope itemtype="http://data-vocabulary.org/RecipeIngredient">
<td class="group"> </td>
<td class="group_ingredient"><div itemprop="name"><a href="https://oceans-nadia.com/search?q=%E3%83%9E%E3%82%B0%E3%83%AD">マグロ</a></div></td>
<td itemprop="amount" class="group_amount">120g</td>
</tr>
</table>
...
...

 試したこと

 補足情報(FW/ツールのバージョンなど)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/04 10:59

    当方、料理に関する知識には多少の覚えがありますが、パソコン周りの知識はめっきりでございまして(笑)
    色々と調べた結果、歯が立たなかったのでご質問させて頂きました。

    キャンセル

0

参考としてあげられたサイトのB6セルのところに書いてあるものを↓のようにすれば、取り出せないこともないです。

=importxml(B2,"//*[@itemprop='ingredient']")
  • cockpadと異なり、もともと表なので、transposeが消えています
  • cockpadと異なり、もともと表で、かつ材料のグルーピングがあるため、3列の表になります。

3列になる点なのですが、正直「パソコン回りの知識はめっきり」ではこれ以上どうしようもないと思うので諦めてください。
(参考サイトと同じようにスプレッドシートを使うなら、3列(ABC,DEF,…)がワンセットになるようなデザインにして対応してください)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • XML

    645questions

    XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

  • XPath(XML Path)

    71questions

    XML Path Language (XPath; XMLパス言語)は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文の事をいいます。XPathはXMLとは別の構文を使用します。XMLドキュメントの抽象、論理ストラクチャ上で動作します。

  • Google スプレッドシート

    4questions