問題タブ [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.
java - Javaでの非常に大きなXMLドキュメント(およびそれ以上)の解析
(以下はすべてJavaで記述されます)
潜在的に非常に大きいXMLドキュメントを入力として受け取るアプリケーションを構築する必要があります。ドキュメントは暗号化されます(XMLsecではなく、クライアントの既存の暗号化アルゴリズムを使用して)、次の3つのフェーズで処理されます。
まず、前述のアルゴリズムに従ってストリームが復号化されます。
次に、拡張クラス(私が提供しているAPIに対してサードパーティによって作成されたもの)は、ファイルの一部を読み取ります。読み取られる量は予測できません。特に、ファイルのヘッダーに含まれることが保証されているわけではありませんが、XMLの任意の時点で発生する可能性があります。
最後に、別の拡張クラス(同じ取引)が入力XMLを1..nサブセットドキュメントに分割します。これらは、2番目の操作で処理されるドキュメントの部分と一部重複する可能性があります。つまり、このオブジェクトを処理するために使用しているメカニズムを巻き戻す必要があると思います。
これが私の質問です:
データ全体を一度にメモリに読み込まずにこれを行う方法はありますか?明らかに、入力ストリームフィルターとして復号化を実装できますが、私が説明している方法でXMLを解析できるかどうかはわかりません。2番目のステップの情報を収集するために必要なドキュメントの多くをウォークオーバーし、次にドキュメントを巻き戻して再度渡すことでジョブに分割します。理想的には、後で使用されなくなったドキュメントのすべての部分を解放します。それらは渡されました。
java - org.xml.sax.ext.EntityResolver2 resolveEntity メソッドで null 以外の名前引数を取得するにはどうすればよいですか?
Java SAX 処理では、
org.xml.sax.ext.EntityResolver2
resolveEntity メソッドからエンティティ参照名を取得できません。name 引数はnull
、ドキュメントに'name' is never null when invoked by a SAX2 parser
.
何か案が ?
この問題を実証するために、Jython 2.5 スクリプトを作成しました。それは(私の箱に)印刷されます:
Jython 2.5 スクリプト:
.net - XPathReaderに何が起こったのか
XPathReaderは、前方読み取りXMLパーサー(XMLReader上に構築)の実装であり、XPathクエリを登録して検索できます(または少なくともSequential XPathと呼ばれるXPathのサブセット)。これは、xmlストリームの要素に簡単にアクセスする場合や、大きなxmlドキュメントの先頭から情報を取得するだけで、すべてをメモリにロードしたくない場合に最適な選択のようです。
MSの担当者の1人が2003/2004年にリリースしたオープンソースの実装については、興奮が沸き起こっているようでした。例:
http://donxml.com/allthingstechie/archive/2004/02/26/430.aspx
http://msdn.microsoft.com/en-us/library/ms950778.aspx
http://www.tkachenko.com/blog/archives/000472.html
しかし、その後、トレイルは枯渇しているようです。実装がホストされた場所(http://workspaces.gotdotnet.com/xpathreader)への参照は機能しなくなったようです。誰かがそれに何が起こったのか、そしてなぜ興味が消えたのか知っていますか?
c++ - C ++でユーザーオブジェクトを解析するSAXのスニペット?
C++のSAXパーサーを使用してユーザー定義オブジェクトを解析したコードスニペットを誰でも共有できますか。
java - RE: 大きな XML ファイル
Big XML Fileへのフォローアップの質問:
まず、あなたの答えに感謝します。その後…私は何を間違えましたか?これは、SAX を使用する私のクラスです。
XML ファイルに対して何もしていないことがわかりますが、次のエラーが発生します。
Stax も試しました...同じエラーが発生しました...どうすればよいですか? また、Java ヒープ サイズを 1260M まで増やしました。
XML ファイルの形式は次のとおりです。
元のファイルを見つけることができます: http://dblp.uni-trier.de/xml/
ありがとう
xml - XPathはDOMやSAXと比較してはるかに効率的ですか?
xml文字列を解析し、特定のテキストノードの値、属性値などを見つける必要があります。これはjavascriptで実行しており、同じようにDOMParserクラスを使用していました。後で、DOMは多くのメモリを消費し、SAXがより良いオプションであると知らされました。
最近、XPathもノードを見つける簡単な方法を提供していることがわかりました。
しかし、これら3つのうちどれがXMLを解析するための最も効率的な方法であるかはわかりません。親切に助けて...
python - Python SAXパーサーは、XMLファイルが整形式ではないと言います
XMLファイルから不要だと思ったタグをいくつか削除しました。これを解析しようとすると、SAXパーサーがエラーをスローし、ファイルの形式が正しくないと表示されます。ただし、すべての開始タグには終了タグがあることを私は知っています。ファイルの開始タグには、XMLスキーマへのリンクがあります。これが問題の原因になっている可能性がありますか?もしそうなら、どうすればそれを修正できますか?
編集:私は問題を見つけたと思います。私の文字データには、おそらくhtmlタグからの「&lt」と「&gt」の文字が含まれています。解析された後、これらは「<」および「>」文字に変換されます。これは、SAXパーサーを悩ませているようです。これを防ぐ方法はありますか?