2011-01-28 8 views
1

は、私はTwitterのフィードを丸呑みした検索結果:メタプログラミングXMLSlurperは、各エントリのように見えるところ

<entry> 
    <id>tag:search.twitter.com,2005:30481912300568576</id> 
    <published>2011-01-27T04:27:08Z</published> 
    <link type="text/html" rel="alternate" href="http://twitter.com/LadyCourtz/statuses/30481912300568576"/> 
    <title>U always right. ml</title> 
    <content type="html">U always right. T <a href=&quot;http://twitter.com/Star_babey&quot;>@Star_babey</a>: But its only <b>twitter</b> tho star u wilding...lml</content> 
    <updated>2011-01-27T04:27:08Z</updated> 
    <link type="image/png" rel="image" href="http://a2.twimg.com/profile_images/1221429153/248287865_normal.jpg"/> 

などなど、私は/ GSPが<img src=${tweet.imgUrl}/>のような画像を表示するようにしたGrailsの中で行うために必要な何

だから、これはXML結果をメタプログラミングする良いケースのように見えましたが、私はGroovy noobyとして問題を抱えています。

少なくとも2つの「リンク」ノードがどのように存在するかを見てください。画像URLにはrel="image"という属性があります。だから私は...

def records = new XmlSlurper().parse(response.data) 
records.entry.metaClass.imgUrl = { -> return delegate.link?.find{[email protected] == 'image'}[email protected] } 

を試みた。しかし、私は超えて取得することはできません。このようなエラー:

groovy.lang.MissingMethodException: No signature of method: groovy.util.slurpersupport.NodeChild.shout() is applicable for argument types:() values: [] 

すべてのヘルプは

答えて

1

にメタプログラミングの必要性を全く感謝しない私は、あなたを考えていません

imageUrlList = new XmlSlurper().parse(response.data).entry.link.findAll { [email protected] == 'image' }*[email protected] 

次に、それぞれの場所の文字列のリストを残す必要があります。

XmlSlurper全体をGSPに戻していますか?私はおそらくちょうどあなたが必要とするデータを抽出し、それだけを返すだろう

+0

私はメタプログラミングがこのケースでは最善のオプションと思う...いくつかの情報は、テンプレートを呼び出すGSPを検討してくださいテンプレート内の を考慮する必要があります。$ {entry.title } Steve

+0

メタプログラミングのように見えるXMLSLurperはメタプログラミングgroovy.util.slurpersupport.NodeChild.metaClassを意味し、間違っているように見え始めたとにかく、うまく動作しません。 は、だから私は、GSPでクリーンなアプローチになっていない: \t ませメタafterallプログラミング...あなたは正しかった! – Steve

関連する問題