私のアプリケーションは、いくつかのxmlソースからWebページモデルを作成します。これらのソースは、通常のXercesパーサでDOMオブジェクトとしてメモリに解析されています。残念ながら、Xerces DOMオブジェクトはではなく、は読み取り専用操作のスレッドセーフです。私は、解析されたDOMを読み込み用に再利用できるようにしたいと考えています。誰かが私が使用するDOM実装を読み込むための別のパーサまたは単純なスレッドを知っていますか?読み取り操作でスレッドセーフなDOMを作成する
5
A
答えて
0
私は完璧で簡単な解決策を知りません。
スレッドセーフオブジェクトを使用してDomを再作成することが考えられます。
この場合、読み取り専用であるため、は変更不可能になることが望ましいです。 不変であれば、さらに改善する可能性が開かれます(インスタンスの共有など、メモリフットプリントが小さくなります)。
私はそれがコーディングのかなりの量であると、私は、これを行うライブラリを提案することがしたい...
4
サクソンは、その内部と不変のデータ構造にDOMラッパーを提供します。
// create Saxon IdentityTransformer
final Transformer transformer = new TransformerFactoryImpl().newTransformer();
// set up holder for the output
final TinyBuilder outputTarget = new TinyBuilder(
new PipelineConfiguration(new Configuration()));
// transform into Saxon's immutable TinyTree
transformer.transform(xml, outputTarget);
// extract the whole XML as TinyNode
final TinyNodeImpl tinyNode = outputTarget.getTree().getNode(0);
// wrap TinyNode as DOM
final NodeOverNodeInfo nodeOverNodeInfo = DocumentOverNodeInfo.wrap(tinyNode);
// cast to DOM
final Document doc = (Document) nodeOverNodeInfo;
(サクソン-彼9.5.1でテスト済み)
関連する問題
- 1. InputStream Non Blocking読み取り操作
- 2. リモートファイル読み取りと操作
- 3. NSUserDefaultsの読み取りアクセスは「高価な」操作ですか?
- 4. Elasticsearchインデックスの作成直後に読み取り操作が発生する
- 5. は、作成と読み取り操作に同じフォームを使用します。
- 6. Thriftでブロック読み取り操作をキャンセルする
- 7. 挿入操作/更新操作は、arangodbでの読み取り操作をロックします
- 8. Delphi Indy IdUdpClient読み取り操作、データが返されない
- 9. JavaScriptで作成されたDOMを操作する方法
- 10. Valgrindでの読み取り操作で無効な書き込み
- 11. ウェブサイトのDOM要素を操作するローカルスクリプトを作成する
- 12. トラックバックDOM操作
- 13. データストアの読み取り操作を減らす
- 14. SCOSTAスマートカードの操作、MF、DF、EFの作成、データの書き込み/読み取りなど...
- 15. SAPUI5:オラタの読み取り操作でのマルチレベルフィルタ
- 16. Cでのバイナリファイルの読み取り操作?
- 17. `ストリーム`を命令的な読み取り操作に変換する方法
- 18. ファイル読み取り操作をログする最も簡単な方法
- 19. innodb_flush_methodは読み取り操作に影響しますか?
- 20. DOM操作用のカスタムスクリプトを作成する
- 21. Javaハッシュマップ読み取り専用スレッドセーフ
- 22. powershellで読み取り専用メンバーを作成するには?
- 23. mysqlで読み取り関数を作成する方法
- 24. Sql Serverで読み取り専用ビューを作成する
- 25. itext7で読み取り専用pdfを作成する方法
- 26. phpMyAdminで読み取り専用ユーザーを作成する
- 27. 複数の小さなDOM操作対1つの大きなDOM操作
- 28. Atom操作エディタDOM
- 29. vala Webkit.WebView DOM操作
- 30. ユニットテストDOM操作サービス