Skip to content

XML取得をSimpleに移行 #2

@labeneko

Description

@labeneko
  • ステータス
    • リファクタリング中

作業内容

  • RSSの構造に合わせてクラスを作成しました
    • RSSの構造
<rss version="2.0"> 
  <channel> 
    <title>ITmedia News ベンチャー人 最新記事一覧</title>  
    <link>http://www.itmedia.co.jp/news/venture.html</link>  
    <description>ITmedia News ベンチャー人 の最新記事一覧です。</description>  
    <language>ja</language>  
    <copyright>Copyright (c) 2015 ITmedia, Inc. All Rights Reserved.</copyright>  
    <pubDate>Fri, 16 Jan 2015 19:25:00 +0900</pubDate>  
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" href="http://rss.rssad.jp/rss/itmnews/2.0/news_venture.xml" type="application/rss+xml"/>  
    <item> 
      <title>周囲の音声をクラウドで解析、通知や家電操作を行えるデバイス「Listnr」 泣き声で赤ちゃんの感情も分類</title>  
      <link>http://rss.rssad.jp/rss/artclk/NItREEcYVYkw/6c0e4256496d4f4acb4652d95ac93e22?ul=e.hGisnkhu17WxoYWUCgaO1..mrQM1tk4G_wTEgTkVwEc3NNzV9EEMeY9BNyuO4sLW.04SP4fI47Z5sXmC.Ye5BTga9SNQmI41s3qKAN71JtxzPiLwU9ftWjcUhIeyPpHOcvH.W</link>  
      <description><![CDATA[<p>周囲の音声をクラウドサーバ上で音声解析し、乳児の感情分析や家電操作ができる小型デバイス「Listnr」をInterphenomが発表した。<img border="0" width="1" height="1" src="http://rss.rssad.jp/rss/artimg/NItREEcYVYkw/6c0e4256496d4f4acb4652d95ac93e22"/></p>]]></description>  
      <pubDate>Wed, 07 Jan 2015 20:15:00 +0900</pubDate> 
    </item>  
    <item> 
      <title>写真でも映像でもなく“空間画” 思い出を3Dモデルで残すアプリ「Fyuse」 ロボット技術を応用</title>  
      <link>http://rss.rssad.jp/rss/artclk/NItREEcYVYkw/98953bccc9454e55975993c295982697?ul=m2wcF8wgoIV8ypZfV6YvDYgEU7wSLblnIOjWlTrkYst7rCENJmPy8m1ie0xeN74kr1fx9kJw7fB8Zw8So0fAmXVklVlC4KnYC6By8WwkMXk9BzaFqcchBl5TdHNjm.Ib8lvZW95</link>  
      <description><![CDATA[<p>垂直や平行方向に周り込むように撮影することで、被写体を3Dモデルとして撮影できるカメラアプリ「Fyuse」が登場した。ロボットの画像認識技術を応用している。<img border="0" width="1" height="1" src="http://rss.rssad.jp/rss/artimg/NItREEcYVYkw/98953bccc9454e55975993c295982697"/></p>]]></description>  
      <pubDate>Wed, 24 Dec 2014 11:00:00 +0900</pubDate> 
    </item>
  </channel>
</rss>
  • これに合わせてRssreaderパッケージ下にRssfeedパッケージをきり、以下の様なクラスファイルを作成しました
+ RssFeed
  - Rss.class
  - Channel.class
  - Item.class

問題点

Item.class = 記事のクラスのようになってしまっている

  • Item.classはRSSの中に<item>があるからItem.classなわけで、記事を表しているわけでは無い
    • RSSの構造が変わって名前が変わった場合に全てに影響
    • Entry.classのような、記事のエントリですみたいなクラスを作り、そちらを見るようにしたい
    • コンバート処理が必要

はまりどころ

gradleにてsimpleを入れる際に、依存ファイルの設定まで書かないとコンパイルが通らなかった

  • app/build.gradle(Module: app)

    • before
    dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar'])
      compile 'com.android.support:appcompat-v7:21.0.2'
      compile 'org.simpleframework:simple-xml:2.7.+'
    }
    
    • after
    • stax, stax-api, xpp3をexcludeして解決
    dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar'])
      compile 'com.android.support:appcompat-v7:21.0.2'
      compile('org.simpleframework:simple-xml:2.7.+') {
        exclude module: 'stax'
        exclude module: 'stax-api'
        exclude module: 'xpp3'
      }
    }
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions