2011-11-13 5 views
3

にウィキペディアページセクションを変換します。私はセクションの生データを返す構築されたリンクをオンラインで見つけました。例えば、Wikipediaページの最初のセクションを 'Boston'にするには、 http://en.wikipedia.org/w/index.php?title=Boston&action=raw&section=0に行きます。私はNSStringのようにWikipediaのページのセクションを取得するいくつかのコードに取り組んでいるのNSStringのObjective-C

私が達成しようとしているのは、その生データを通常のWikipediaページで見ることができるものに変換することです:http://en.wikipedia.org/wiki/Boston

まず、{{で始まり、}}で終わるブロックを解析するために正規表現を使用すると思いました。しかし、これは問題であることが判明し、必要なテキストが削除されました。

その後、私は何とかのObjective-Cのために(どこでもオンライン存在)コンバータをHTMLにwikiマークアップを見つけることができると思ったが、私はそこには運がなかったです。

ありSO上のいくつかの同様の質問がありますが、それらのどれも明確に解決されるように見えるん:Getting Wikipedia Article Summary using NSScanner Problem

ので、再開することを、誰もがNSStringのにwikiページを解析する方法を知っていますか?

ありがとうございます。

答えて

1

は、キウイなどPEGウィキテキストパーサを使用します。https://github.com/AboutUs/kiwi

あなたがここにキウイの解析出力ルールを見つけることができます:https://github.com/AboutUs/kiwi/blob/master/src/syntax.leg

をあなたは足のファイルをコンパイルするために、PEG /足をダウンロードする必要があります:http://piumarta.com/software/peg/

+0

それは役に立つと思われますが、Objective-Cラッパーがあれば分かりますか?私はもともと2つの正規表現の方に傾いていましたが、実装が容易であると分かった場合は、代わりにこのために行くかもしれません。 – elliottbolzan

+0

私が知っていたことはありません。しかし、あなたが書いて(そしてリリースする)ことを望まないなら、あなたは常にコマンドラインツールとしてビルドし、あなたのアプリからNSTask経由でそれを実行することができます。ケーキの一片。 STDINのWikiマークアップ、STDOUTのHTML。完了しました。 – Regexident

+0

".leg"ファイルコンパイラへのリンクで更新されました。 IIRCでは、 './configure && sudo make && make install'(おそらく' ./configure && 'を使わずに)でkiwiをコンパイルしようとする前に、peg/legをインストールする必要があります。ああ、はい、私は正常にキウイをコンパイルしました。ちょうど一週間前。 ;) – Regexident

関連する問題