20

SGML でフォーマットされたドキュメントを解析できる Java のパーサーを探しています。

重複モニターの場合: このトピックについて議論している他の 2 つのスレッドを認識しています: Parsing Java String with SGML Java SGML から XML への変換? しかし、どちらにも解決策がないため、新しいトピックです。

XML と SGML を混同する人のために: これを読んでください: http://www.w3.org/TR/NOTE-sgml-xml-971215#nullバニラフォーム)

ポスターを Google に依頼するのが好きな人のために: 私はすでに行っており、私が思いついた最も近いものは、広く普及している SAXParser でした: http://download.oracle.com/javase/1.4.2/docs/api/javax /xml/parsers/SAXParser.html しかし、これはもちろん XML パーサーを意図したものです。誰かが SGML に対応するために SAX パーサーの修正を実装していないか調べています。

最後に、Java ソリューションを探しているので、SX を使用できません。

ありがとう!:)

4

6 に答える 6

4

この問題にはいくつかのアプローチがあります

1 つ目は、標準の SAX パーサーが機能するために、sgml ドキュメントが XML に十分に近いかどうかを確認することです。

2 つ目は、HTML パーサーで同じことを行うことです。ここでの秘訣は、非 HTML 要素を無視しないものを見つけることです。

「sgml parser Java」を検索すると、いくつかの Java SGML パーサーが見つかりました。それらがどれほどうまく機能するかはわかりません。

最後のステップは、標準 (非 Java) SGML パーサーを使用して、ドキュメントを Java で読めるものに変換することです。

最初の一歩を踏み出すことができたようです。

于 2011-03-07T13:53:51.750 に答える
2

純粋な Java SGML パーサーがないように見えるため、JNI 経由で OpenSP を使用します。http://sourceforge.net/projects/sasgmlで入手できる実験的な SAX のようなラッパーを作成しました(もちろん、JNI のすべての欠点があります... しかし、私の要件には十分でした)。

もう 1 つの方法は、Open SPの sx を使用してドキュメントを XML に変換してから、従来の SAX パーサーを実行することです。

于 2013-02-18T11:24:15.363 に答える
1

現時点では、Java を使用して SGML を解析するための API はありません。また、SGML を XML に変換し、Java を使用して解析するための API やライブラリもありません。私がこれまで取り組んできたすべてのプロジェクトで SGML が XML に取って代わられている状況で、この分野ですべての作業が行われるとは思いませんが、それは推測にすぎません。

これを行う大学のオープンソースコードコードを次に示しますが、私はそれを試していないため、他の依存クラスを見つけるために検索する必要があります。Java で実行可能な唯一のソリューションは、正規表現を必要とするものだと思います。

また、公開されている SGML/XML ソフトウェアへのリンクもここにあります。

于 2012-02-15T15:55:15.573 に答える
1

Java SE には、javax.swing.text.html.parserパッケージに HTML パーサーが含まれています。ドキュメントでは一般的な SGML パーサーであると主張していますが、ドキュメントでは、提供されている HTML DTD クラスでのみ使用する必要があると反論しています。

寛大なモードにして、SGML ドキュメントに多くの暗黙の終了タグがない場合、妥当な結果が得られる可能性があります。

JavaDoc のパーサーについては、こちらを参照してください

次のようにインスタンスを作成します。

new DocumentParser(DTD.getDTD("html32"))

または、DocumentParser でカスタム DTD を使用することに対する警告を無視して、独自の SGML 形式の規則に一致する DTD のサブクラスを作成することもできます。

これは明らかに産業用強度の SGML パーサーではありませんが、1 回限りのデータ移行作業の開始点としては適切です。以前のプロジェクトで HTML を解析するのに役立つことがわかりました。

于 2012-09-05T14:17:18.460 に答える
0

解析している HTML の場合、次のようになります。

http://ccil.org/~cowan/XML/tagsoup/

于 2012-07-04T14:51:49.913 に答える