我的應用程序從許多xml源組成一個網頁模型。這些源以正常的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. Ruby || =操作員線程安全
- 2. C#treeview線程安全操作
- 3. 在Windows操作系統中的線程安全和原子讀取
- 4. 讀取()操作期間的線程
- 5. 多線程和鎖定(線程安全的操作)
- 6. 只讀線程安全
- 7. Django。線程安全更新或創建。
- 8. 如何創建線程安全GetEventHandler()?
- 9. 創建一個非線程安全shared_ptr
- 10. 使用讀寫器鎖創建線程安全列表
- 11. 線程回調到創建線程線程安全嗎?
- 12. 線程安全問題:跨線程操作無效
- 13. 遍歷(讀取)靜態DOM文檔對象是否線程安全?
- 14. testng偵聽程序線程安全的文件操作
- 15. DOM操作掛起UI線程
- 16. 確保安全的SQLite數據庫操作(不是指線程安全的)
- 17. 安全地取消線程
- 18. JavaScript和DOM操作(創建和刪除)
- 19. Delphi:如何創建一個線程安全的全局TList?
- 20. java線程安全:線程安全嗎?
- 21. 使線程跳轉讀取輸入操作從其他線程
- 22. 製作類線程安全
- 23. 多線程寫入,一個線程從隊列中讀取,線程安全
- 24. 線程安全流和流操縱器
- 25. 在Swift中創建線程安全讀取時,爲什麼在併發隊列外創建一個變量?
- 26. 爲非線程安全代碼構建工作線程池
- 27. 64位.net上的Int32/Int64操作的線程安全性
- 28. Python:安全地讀取線程中的對象的值?
- 29. 什麼操作在std :: map上是線程安全的?
- 30. 如果轉換/分配到線程安全的CAS操作