問題タブ [sax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
1879 参照

java - さまざまな XML ドキュメントを処理するために Java をどのように使用しますか?

Java アプリケーションを使用してさまざまな XML ドキュメントを解析するための最良の方法を探しています。私は現在、SAX とカスタム コンテンツ ハンドラーを使用してこれを行っていますが、うまく機能します。

私は、現在 1 つの形式の XML ドキュメントを受け取り、さまざまな XML 要素の変更を加えた 2 つの追加の XML ドキュメント形式を受け取る、同じプログラムを持つオプションを検討することにしました。ドキュメントの最初の「startElement」に基づいて、ContentHandler を適切なものと交換したいと思っていましたが、ええと、ContentHandler が設定されドキュメントが解析されます。

そのため、最初にできると思っていた方法でこれを行うことができるようには見えません。

そうは言っても、私はこれを完全に間違って見ていますか?複数の個別の XML ドキュメントを同じ XML 処理コードで解析する最適な方法は何ですか? 以前、もっと一般的な投稿で質問しようとしましたが、漠然としすぎていたと思います。これらの XML ドキュメントはかなり大きく、システムは数分ごとに約 1200 を受信するため、速度と効率のために DOM を実際に調べたことはありません。それはただの一方通行の情報発信です

この質問を長くしすぎて、混乱を招きます。以下は、単一の SAX、StAX、または ?? にしたいいくつかのさまざまな XML ドキュメントのモックアップです。パーサーはきれいに対処します。

製品.xml:

store.xml:

manager.xml:

0 投票する
2 に答える
3133 参照

java - Java 1.4 と SAX を使用して任意のデータを XML にエンコードするにはどうすればよいですか?

SAX を使用して XML を解析します。これは、単一の値を解析するために XML ドキュメント全体をメモリに読み込む必要がないためです。私は、SAX は XML を解析/デコードするためだけに使用でき、XML を作成することはできないと主張する多くの記事を読みました。これは本当ですか?

0 投票する
4 に答える
13005 参照

c# - SAX と XmlTextReader - C# での SAX

XmlDocument大きな XML ドキュメントを読み込もうとしていますが、ファイル全体をメモリに読み込む方法と比較して、チャンクで読みたかったのです。これを行うために使用できることはわかっXmlTextReaderていますが、SAX for .NET を使用したことがある人はいますか? 私は Java 開発者がそれを信頼していることを知っており、試してみる価値があるかどうか、もしそうなら、それを使用する利点は何かと考えていました。詳細を探しています。

0 投票する
2 に答える
9370 参照

java - Sax XmlHandler から CDATA セクションを出力する方法

これは、 Oracle から Xml に文字をエンコードする方法のフォローアップの質問です。

私の環境では、Java を使用して結果セットを xml にシリアル化します。出力ストリーム自体にはアクセスできず、org.xml.sax.ContentHandler にしかアクセスできません。

CDATA セクションで文字を出力しようとすると:

基本的に次のように発生します。

私はこれを得る:

しかし、私はこれが欲しい:

では、Sax ContentHandler を使用して CDATA セクションを出力するにはどうすればよいでしょうか?

0 投票する
4 に答える
32662 参照

python - XML 解析 - ElementTree と SAX および DOM の比較

Python には XML を解析する方法がいくつかあります...

SAXによる構文解析の基本を理解しています。イベント駆動型 API を使用して、ストリーム パーサーとして機能します。

DOMパーサーも理解しています。XML をメモリに読み込み、Python でアクセスできるオブジェクトに変換します。

一般的に言えば、実行する必要があること、メモリの制約、パフォーマンスなどに応じて、2 つのいずれかを選択するのは簡単でした。

(うまくいけば、私はこれまでのところ正しいです。)

Python 2.5 以降、 ElementTreeもあります。これは DOM や SAX と比べてどうですか? どちらに似ていますか?以前のパーサーより優れているのはなぜですか?

0 投票する
5 に答える
1414 参照

java - Javaで「イベントXML」を解析するには?

Java を使用して、リモート デバイスによって生成されたイベント ドライブ XML の進行中のストリームを解析しようとしています。2 つのイベントの簡単なサンプルを次に示します。

DOM よりも SAX の方が適しているように思えます。これは進行中のストリームであるためです。ただし、私は Sax に詳しくありません。XML の構造について怒鳴らないでください。私はそれを既に知っており、変更することはできません。

はい、デバイスはすべてのイベントの前に xml ディレクティブを送信します。私の最初の問題は、2 番目の xml 処理命令が SAX パーサーをクラッキングしていることです。

誰かがそれを回避する方法を提案できますか?


私がこれまで使用していた、2 番目の xml 処理命令で鳴っているコードは次のとおりです。

0 投票する
6 に答える
4484 参照

java - dom4j を使用してストリームから単一の XML ドキュメントを読み取る

dom4j を使用してストリームから一度に 1 つの XML ドキュメントを読み取り、処理してから、ストリーム上の次のドキュメントに進みます。残念ながら、dom4j の SAXReader (裏で JAXP を使用) は読み取りを続け、次のドキュメント要素を停止します。

ドキュメント要素の終わりを見つけたら、SAXReader にストリームの読み取りを停止させる方法はありますか? これを達成するためのより良い方法はありますか?

0 投票する
2 に答える
1113 参照

xml - SAX パーサーでの不明な XML 要素のパススルー

XML ドキュメントからいくつかのデータをロードし、それを変更して、XML に書き戻しています。読み取りは SAX パーサー ライブラリを使用して行われ、書き込みはカスタム コードの一部を使用して行われます。場合によっては、ファイルが外部で変更され、余分な要素が追加されます (スタイルシートへの参照など)。ファイルを読み込んで保存するときにこれらの余分な要素を失うのではなく、不明なタグを通過させて表示したいと思います

未知の要素が解釈された要素から分離されている場合、未知の要素と属性を文字列として保存し、後で出力するのは簡単なはずですが、それらが解釈された要素内に散在してネストされていると、あまり明白ではなくなります。

誰もこれを行うための簡潔な方法を提案できますか? DOM パーサーに切り替える方が簡単でしょうか? パフォーマンスは問題ではありません。

注意。私は Gnome Glib::Markup::Parser を使用して C++ で作業していますが、言語/ライブラリにとらわれない回答を好みます。

0 投票する
3 に答える
1254 参照

java - SAX パーサーが ñ で壊れる

デフォルトのハンドラーを拡張することにより、Java で SAX パーサーを実装しました。XML の内容に ñ が含まれています。このキャラクターに当たると壊れます。文字メソッドで char 配列を出力すると、単に ñ の前の文字で終わります。コンテンツがまだたくさんあるにもかかわらず、他のメソッドが呼び出されないため、パーサーはこの後停止するようです。つまり、endElement メソッドが再度呼び出されることはありません。誰かが以前にこの問題に遭遇したことがありますか、またはそれに対処する方法について何か提案がありますか?

0 投票する
4 に答える
5634 参照

java - Java SAX パーサーが UnknownHostException を発生させる

解析したい XML ファイルは次で始まります。

そのため、SAX praser を起動すると、オンラインでこの DTD にアクセスしようとすると、java.net.UnknownHostException が発生します。

  1. SAX パーサーにフィードする前に XML ファイルを変更できません
  2. インターネットに接続していなくても実行する必要がある

DTD をロードしないように SAX パーサーの動作を変更するにはどうすればよいですか? ありがとう。