首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XdmNode中更改S9API基URI

如何在XdmNode中更改S9API基URI
EN

Stack Overflow用户
提问于 2020-04-13 07:34:57
回答 1查看 105关注 0票数 0

我为Saxon的S9API XdmNode实例提供了一个本地缓存,通过URI实现了getputmoveremove操作。move操作允许将XdmNode从一个URI移动到另一个URI。

我的问题是,XdmNode在内部保留文档的基本URI。如何更新底层NodeInfo的基本URI?当底层节点是DOMNodeWrapper时,可以更新基URI。但是,例如,TinyDocumentImpl是不变的。

是否有一种解决方案,允许更新TinyDocumentImpl的基本URI,而不需要通过创建树的完整副本来构建新文档?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 14:24:21

当这个问题第一次出现的时候,我错过了,因为没有一个“撒克逊”标签。

一种选择是使用LinkedTree作为您选择的树模型;链接树是可变的,DocumentImpl类有一个setBaseURI()方法。您可以使用DocumentBuilder.setTreeModel()选择树模型。(但是要小心使用;如果在转换过程中更改节点的属性,后果是不可预测的。)

另一个选项是将一个TreeInfo封装在一个net.sf.saxon.tree.wrapper.RebasedDocument中,它创建了原始节点的虚拟副本,除了具有不同的基URI之外,其他都是相同的。虚拟副本的内存开销几乎为零,但在导航树时开销很小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61183348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档