iOS開発で使えるXMLパーサ
URLやFileに接続してXMLを取得〜解析するためのライブラリィ、いわゆる「XMLパーサー」だが、iOSで使用することができる実装はどのようなものがあるのだろう。
NSXMLParser
NSXMLParser Class Reference
Cocoa/Foundationの標準XMLパーサ。※ SAX形式であり、恐らくは一番よく使われているパーサだろう。
SAXでありタグ駆動ということでコードが大きくなりがちだが、SAXは馴染みが深い開発者が多く使いやすいことが予想できる。
libxml2
The XML C parser and toolkit of Gnome
libxml2は元々はGNOMEのためにCで書かれた標準的なXMLパーサだったが、Cの標準的なパーサとして様々なプラットホーム言語に移植されており、Max OS X用にポーティングされた実装がiOS SDKから直接使用することができる。また、他のXMLパーサのベースとして使われることも多い。
高速だが全てCで書かれており、Objective-Cから使うには一工夫が必要だろう。
TouchXML
TouchXML/Source at master · TouchCode/TouchXML · GitHub
NSXML〜クラス群を置換えるために書かれたオープンソースの実装。ベースにlibxml2を使った軽量且つXMLの読込みに特化したDOMパーサらしい。HTMLのパースもできるらしいが、使っていないので詳細は不明だ。
KissXML
robbiehanson/KissXML
上記TouchXMLにインスパイアされた作者が書いたパーサであり、TouchXMLでは元々サポートされていなかったDOMの出力機能を実装している。
以上、いずれもSAXベースかDOMベースだが、個人的には.NET、Javaと近年当たり前となったプルパーサを使いたい。
iOSで使用可能なXMLプルパーサは無いのだろうか。
※CocoaではNSXMLDocumentと呼ばれるDOMパーサもあるが、DOMツリーはリソース食いなのを嫌ってかiOSではサポートされていないようだ。