はてなブックマークのRSSデータを加工
はてなブックマークのデータを引っ張ってきて適当に加工してHTMLで出力したかったので、PowerShellでやってみた。
$xml = New-Object xml $xml.Load("http://b.hatena.ne.jp/coma2n/rss") $xml.RDF.item | sort title | ConvertTo-Html title -title "はてなブックマーク" > "hatebu.html"
- まずは「New-Object」コマンドレットで「xml」(XmlDocument)クラスのインスタンスを生成する。
- 「Load」メソッドで自分のはてなブックマークのRSSのアドレスを指定して、RSSデータを読み込む。
- RDF要素 > item要素に各ブックマークの情報が入っているので、そのリストをtitle要素をキーにしてソートする。
- それを「ConvertTo-Html」コマンドレットでHTMLに変換する。HTMLに出力したい情報としてtitle要素を指定する。あとHTML自体のtitleを「-title」オプションで指定する。
- 最後にそのHTMLを「Set-Content」コマンドレットで「hatebu.html」というファイルに出力する。
たった3行でこれだけの事ができる。
出力するHTMLも結構カスタマイズできるみたいなので実用的。いかすぜ!PowerShell!!
出力結果
テーブルとして出力される。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>はてなブックマーク</title> </head><body> <table> <colgroup> <col> </colgroup> <tr><th>title</th></tr> <tr><td>* Dynicity,LLC ** XML Documentation Comments Guide *</td></tr> <tr><td>.NET Tip of The Day: Speed up Visual Studio 2005</td></tr> <tr><td>@IT:特集:PDC05レポート:動的プログラミング言語へと発展するC# 3.0とVB 9.0</td></tr> <tr><td>【レポート】Grails eXchange 2007 - Java開発向けのフレームワーク・ディストリビューション「Grails」 (1) Grailsに対する「誤解」 | エンタープライズ | マイコミジャーナル</td></tr> <tr><td>altnetconf - Scott Guthrie announces ASP.NET MVC framework at Alt.Net Conf - Jeffrey Palermo [MVP]</td></tr> <tr><td>CodePlex</td></tr> <tr><td>Cool Firefox Wallpapers - 1600 x 1200 Resolution</td></tr> <tr><td>Ext JS - JavaScript Library</td></tr> <tr><td>GOA - What is GOA WinForms? - System.Windows.Forms for Adobe Flash and Microsoft Silverlight</td></tr> <tr><td>Home :: Castle Project</td></tr> <tr><td>IE7pro for Internet Explorer7, improving your IE experience! -- Proxy switch, agent identification, block ads, customizable interface.</td></tr> <tr><td>Json.NET - Home</td></tr> <tr><td>jTemplates - template engine in JavaScript</td></tr> <tr><td>LINQ to SQL (パート 3 - データベースの検索) - ScottGuさんのブログ翻訳</td></tr> <tr><td>LINQ to SQL (パート 4 - データベースの更新) - ScottGuさんのブログ翻訳</td></tr> <tr><td>LINQ to SQL (パート 5 - ASP:LinqDataSourceコントロールを使用してUIをバインディング) - ScottGuさんのブログ翻訳</td></tr> <tr><td>LINQ to SQL (パート 9 - カスタムLINQ文をasp:LinqDatasourceコントロールと共に使用) - ScottGuさんのブログ翻訳</td></tr> <tr><td>LINQ to SQL (パート6 - ストアドプロシージャを使用してデータを取得) - ScottGuさんのブログ翻訳</td></tr> <tr><td>LINQ to SQL (パート7 - ストアドプロシージャを使用してデータベースを更新) - ScottGuさんのブログ翻訳</td></tr> <tr><td>LINQ to SQL (パート8- カスタムSQL文を実行) - ScottGuさんのブログ翻訳</td></tr> <tr><td>Log4js - The Logging API for JavaScript</td></tr> <tr><td>masuidrive on rails » Blog Archive » masuidrive的プロジェクトの方針</td></tr> <tr><td>Microsoft SQL Server: SQL Server 2005 Compact Edition</td></tr> <tr><td>PowerGUI Community : Main</td></tr> <tr><td>TechCrunch Japanese アーカイブ » じっくりとSilverlightを理解しよう。本当に大切だから。</td></tr> <tr><td>TortoiseSVN - The coolest Interface to (Sub)Version Control</td></tr> <tr><td>Windows PowerShell : The new TabExpansion feature...</td></tr> <tr><td>xfy | xfy Blog Editor: 快適なブログ生活を始めてみませんか?</td></tr> <tr><td>すべらない名無し</td></tr> <tr><td>印刷結果を画像ファイル化する仮想プリンタ「Virtual Image Printer driver」 - GIGAZINE</td></tr> </table></body></html>