私のアプリケーションは、いくつかの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. NSUserDefaultsの読み取りアクセスは「高価な」操作ですか?
- 3. Thriftでブロック読み取り操作をキャンセルする
- 4. Delphi Indy IdUdpClient読み取り操作、データが返されない
- 5. データストアの読み取り操作を減らす
- 6. ウェブサイトのDOM要素を操作するローカルスクリプトを作成する
- 7. SAPUI5:オラタの読み取り操作でのマルチレベルフィルタ
- 8. ファイル読み取り操作をログする最も簡単な方法
- 9. innodb_flush_methodは読み取り操作に影響しますか?
- 10. Sql Serverで読み取り専用ビューを作成する
- 11. powershellで読み取り専用メンバーを作成するには?
- 12. mysqlで読み取り関数を作成する方法
- 13. phpMyAdminで読み取り専用ユーザーを作成する
- 14. 複数の小さなDOM操作対1つの大きなDOM操作
- 15. vala Webkit.WebView DOM操作
- 16. Backbone.jsとDOM操作
- 17. ユニットテストDOM操作サービス
- 18. Atom操作エディタDOM
- 19. XML - リソースから読み取り、操作し、表示
- 20. 「SSLError:読み取り操作がタイムアウトになりましたが、」ピップ
- 21. APEXでの読み取り/書き込みページの作成
- 22. PHPでのDOM操作
- 23. PhantomJSでのDOM操作
- 24. 角度:$ uibModalでDOM操作
- 25. ObjectiveCは読み取り時に書き込み操作を実行します
- 26. ASP.NET MVCでカスタムボタンを作成する(作成、読み取り、更新、削除のボタンではない)
- 27. スレッドセーフなGetEventHandler()を作成するには?
- 28. スレッドセーフなContentProviderを作成するには?
- 29. スレッドセーフなイベントハンドラを作成する方法
- 30. 読み取り専用スキーマで操作を続行しますか?