我的应用程序从许多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操作