タイトルが示すように、NSXMLParser パーサーを使用してファイルを解析するときに、タグが存在するかどうかを知る方法はありますか? はいの場合、その属性の値を取得するにはどうすればよいですか (存在する場合)?
NSXMLParserDelegate のすべてのメソッドを試しましたが、どれも問題を解決できません...そのタグを手動で解析する必要がありますか?
タイトルが示すように、NSXMLParser パーサーを使用してファイルを解析するときに、タグが存在するかどうかを知る方法はありますか? はいの場合、その属性の値を取得するにはどうすればよいですか (存在する場合)?
NSXMLParserDelegate のすべてのメソッドを試しましたが、どれも問題を解決できません...そのタグを手動で解析する必要がありますか?
理論的には、デリゲート コールバックを受け取る必要があり-foundProcessingInstructionWithTarget:data:
ますが、実際には発生しません (少なくとも iOS では、OS X をチェックしていませんでした)。
確実にチェックしたい場合は、XML ディレクティブを探して、ファイルの先頭を自分で解析する必要があります。そのためには、短い読み取りとスキャンでNSScanner
おそらく十分です (NSScanner
単純な文字列テストの代わりに使用することで、より適切な空白処理が得られます)。
明らかに、これは最初に探していた答えではありませんが、XML には宣言された文字セットがあるため、utf-8
宣言でそれを書き出すだけで、変更されたファイルを読み取るものはすべて (同一であれば書き換える必要がないので)、処理ディレクティブも読み込んで文字セットを正しく扱うことができます。