2

Python を使用して DTD を解析および変換するのに役立つライブラリを探しています。これまでに見つけたのはxmlprocだけですが、これは古いようで、DTD のシリアル化をサポートしていないようです。これはJava用ですが私はPythonソリューションを好みます。

編集: DTD の「シリアル化」とは、理想的には、DTD をある種の Python 構造に解析し、その構造を操作して、結果を DTD に書き戻すことができるようにしたいということです。

4

2 に答える 2

0

DTD用のエンドツーエンドプロセッサについては知りませんが、DTDを使用することはめったにないので、驚くことではありません。

AmaraはDTDを解析できますが、DTDにアクセスできるレベルや、結果をシリアル化できるかどうかはわかりません。私は彼らができると思います、しかしそれは現実に基づいていません。libxml2は、Pythonでlxmlとして利用できるので、他に調査する必要がありますが、私はそれについての経験がさらに少ないです。libxmlのドキュメントから、完全なDTDにアクセスできるようです。

もう1つの可能性は、多くのプログラムの1つを使用してDTDをXSDに変換し、通常のXMLプロセッサーを使用してツリーを操作し、それをDTDに戻すことです。それがどれほど損失になるのか心配です。

難易度が高くなるにつれて、DTD文法用のパーサーを自分で作成する場合は、PyParsingまたはPLYを検討してください。

于 2009-12-30T02:08:28.977 に答える
0

DTDをXMLベースの形式の1つに変換することを検討することをお勧めします。その時点で、ElementTreeまたは任意のXMLツールキットを使用して処理できます。

私はRelaxNGで良い経験をしました。これは、かなり簡潔でわかりやすいものです。そのサイトには変換ツールのリストがあります:http://relaxng.org/#conversion

XMLスキーマをご希望の場合は、次の情報を利用できます:http ://www.w3.org/XML/Schema

サードパーティのドキュメントまたはDTDを扱っている場合、これはうまくいかない可能性があります。社内の場合は、試してみてください。XMLベースのスキーマは、操作がはるかに快適です。

于 2009-12-30T06:27:12.923 に答える