ここで問題が発生しました。次のようになります。
受信した既存の XML メッセージのサンプルを示すために、さまざまな応答/メッセージ タイプに対して 50 のクラス (XML パーサー) があります。以下を参照してください。
<XML>
<transaction>
<messagetype>message</messagetype>
<message>Blah, Blah, Blah</message>
</transaction>
</XML>
最近まで、マルチトランザクション メッセージの受信を許可する要件が課されていたため、最近のメッセージは次のようになります。
<XML>
<transaction>
<messagetype>message</messagetype>
<message>Blah, Blah, Blah</message>
<messagetype>notification</messagetype>
<message>stopped</message>
<messagetype>notification</messagetype>
<message>started</message>
<messagetype>alert</messagetype>
<message>no service</message>
</transaction>
</XML>
私が知りたいのは、どのアプローチがより効率的かということです:
a. Create a new Class/Method to catch all type of request and traverse through all the XML element then store it to an array, then iterate through the loop and pass each array (xml element node) to their respective parsers.
b. Edit each Parser to accomodate the changes. (I seem to see this a very, very tedious job)
c. Create one big parser, putting all parsing stuffs there and then traverse using switch cases (this disregarding all the existing parsers)
また、各応答中に要素ノードが可変的に変化する可能性があることに注意してください。そのため、子ノードは 1 から N にすることができます (N は制限です)。
この種のシナリオに対する実行可能な解決策はありますか? 既存のコードを書き直すつもりはありませんが (プログラマーの美徳の 1 つです)、それが唯一の方法である場合は、そうする必要があります。
Objective-Cを使用してiPhoneにこれを実装しています
ティア