0

外部デバイスからのデータを使用する Lua プログラムがあります。デバイスは、次のような不正な XML を返しています。

<element attribute1="value1" attribute2="value2" attribute3=" m "value3" " attribute4="value4" />

特に、一部のフィールドはユーザーが編集可能であり、エスケープする必要がある項目が含まれている可能性がありますが、そうではありません。これらのメッセージを生成するコードを修正できることを願っていますが、それまでは「正しいことを行う™」ための回避策が必要です。メッセージは、属性が常に同じ順序で常に存在する固定形式で送信されるように見えるので (私が知る限り)、次のような非常に制限的なパターン マッチを使用できます。

string.match(str, 'attribute1="(.*)" attribute2="(.*)" attribute3="(.*)" attribute4="(.*)")

しかし、これは非常に厄介なようで、フォーマットを変更することを決定した場合 (問題を修正せずに.

代替ソリューションの提案はありますか? 私は主に " に変換する必要がある " を見つけることに関心があります。他の XML エンティティについてはそれほど心配していません。

4

1 に答える 1

3

残念ながら、XML がそのように不正な形式であると、絶対にすべての場合に機能するものを思いつくことはできません。

まず、通常の XML として解析してみます。それが失敗した場合は、正規表現メソッドにフォールバックします。そうすれば、この XML のプロデューサーが修正されると、コードは自動的に適切な処理を開始します。

于 2009-06-25T22:51:57.060 に答える