Posted by starbucks.espre... on May 14, 2015 at 3:06pm
こんばんは。はじめて質問させていただきます。
Drupalを触り始めて半年ぐらい触ってます。
現在、以下のXMLをDrupalで定期的に読み込み、
更新があれば更新内容をメールで送信する機能を実現したいと思っています。
またXMLから読み込んだ情報は、Viewで検索することも後に実現したいため、
コンテンツタイプか何かを新規で作り、Drupalに溜めていきたいです。
http://nvd.nist.gov/download/nvdcve-recent.xml
以下のモジュールを使う想定で、
HTTP FetcherでURLを指定し、
XPath parserで欲しい情報を取得する流れを想定しています。
・Feeds
・Feeds HTTP Fetcher
・Feeds XPath parser
・Feeds News
そこで質問なのですが、
①XMLは子/子孫要素は存在しない場合や2件以上ある場合がありますが、
こういった場合フレキシブルにDrupal内に情報を溜めておく方法はありますか?
②XPath parserを使う想定ですが、そもそももっとスマートにすべてを取得できますでしょうか。
xpathをガリガリ書くのもつらいので...
以上、よろしくおねがいします。

Comments
はじめまして。ご参考になるかわかりませんが・・・ ①XML
はじめまして。ご参考になるかわかりませんが・・・
こちらは「 XML が階層的になっていて、子要素などもひとつのノードとして登録したい」という理解でよろしかったでしょうか?
ネガティブなお答えになりますが、コードを書かずにそのようなことを実現するのは少し難しいのではないかと思います。
ノードとして登録する前に各フィールドに対して前処理を行える「 Feeds Tamper 」というモジュールなどはありますが、想定されている処理を行えるようなモジュールは今のところ存在しないような、気がします。。
こちら「もっとスマートに」というのはたとえばどのようなイメージでしょう?具体的なイメージをお出しいただけると他の方からのヒントが得られやすいかもしれません。
>こちらは「 XML
>こちらは「 XML が階層的になっていて、子要素などもひとつのノードとして登録したい」という理解でよろしかったでしょうか?
はい、ご認識のとおりです。
>ネガティブなお答えになりますが、コードを書かずにそのようなことを実現するのは少し難しいのではないかと思います。
そうでしたか。私なりにモジュールを探してみたのですが、残念です。
>こちら「もっとスマートに」というのはたとえばどのようなイメージでしょう?具体的なイメージをお出しいただけると他の方からのヒントが得られやすいかもしれません。
XPath parserを使うとなると、親タグ子タグ、属性などもろもろをXPathを書く必要がある認識で、
XPathを書かずとも子タグはnode、属性はfieldといった感じで自動で読み込めたらなという思いでした。
分けてみてはいかがでしょうか
hgotoさんがおっしゃられるいるように、Drupal内でコードを書かずに処理するのは難しい気がします。
※条件処理としてRules Moduleは試す価値あるかもしれませんが。
なので、データの取得と処理については外部のサービスを利用するのはいかがでしょうか。
もし自分であれば、あらかじめデータを整形してDrupalにはインポートするだけにしたいように思います。
もしかしたら以下のサービスが役に立つかもしれません。
twitter: @snize
なるほど、そうですね。 今回は諦めて、ロジックを書いてしま
なるほど、そうですね。
今回は諦めて、ロジックを書いてしまいました。
提示していただいたサービスも参考にしたいと思います。