4

私は現在、doxygen XML 出力用のパーサーを作成しています。一部は学術的な理由と、doxygen/addons/doxmlparser のコードが古いためです。

QXmlStreamReader を使用して XML を解析していますが、一部の属性でエラーが発生します。たとえば、次の XML は doxygen によって生成されます。

...
<listofallmembers>
...
<member refid="qset_1operator&" prot="public" virt="non-virtual"><scope>libDatabase::Set</scope><name>operator&amp;</name></member>
...
</listofallmembers>

これrefid="qset_1operator&"はもちろん問題です:

XmlStreamReaderError: Expected '#' or '[a-zA-Z]', but got '"'.

その他のエラーには<>、XML 属性に文字 (およびその他) が含まれていることが含まれます。

&lt;これらの文字を、&gt;などの対応する文字に置き換える必要があることはわかっています。

Qt のクラスを使用して XML を見ることさえできない場合、XML を簡単に (もちろん自動的に) 修正するにはどうすればよいでしょうか?

4

1 に答える 1

2

1 つの可能性は、エラーを回避し、表示されたときに手動で修正し、整形式になるまで XML を反復処理することです。この Stackoverflow の質問を参照してください: Qdom を使用して無効な XML タグを無視しますか?

tidy ライブラリを使用して、処理前に入力を修復することもできます。

于 2013-02-25T10:52:51.407 に答える