gpt4 book ai didi

java - Saxon-HE 集成扩展功能

转载 作者:行者123 更新时间:2023-11-29 07:01:13 27 4
gpt4 key购买 nike

我最初应该通过声明我们的代码使用嵌入式 saxon 扩展函数来发布我的问题 - saxon:parse($xml) 返回 xml 的根元素/节点。但是,在 Saxon-HE 中,该扩展不再可用 - 所以我正在尝试编写一个集成扩展,将 xml 字符串解析为文档并返回根元素。

我正在使用 Saxon-HE 9.5.1.6 - 我正在尝试编写一个返回文档根节点的集成扩展函数。该函数接收一个 xml 字符串 - 创建一个文档并需要将根节点返回给 xslt,然后使用 xpath 查找特定元素。 ExtensionFunctionCall 类/类型的 call() 方法返回一个 Sequence 类型——如何返回 NodeSequence 或 NodeType?如何从我的文档构建 NodeSequence?

我可以逐步调试并确认该函数接收到正确的 xml - 将其解析为文档,但到目前为止我无法确定如何使用我的 RootElement 构造 NodeSequence。

我还有其他返回 StringValue 的集成扩展函数——它们工作得很好,但我无法从可用的类方法中了解到如何从 ExtensionFunctionCall 返回除简单 (numerica/alpha/item) 类型以外的任何内容

谢谢。

最佳答案

DocumentInfo 类实现了 Sequence,因此如果您返回一个 DocumentInfo,那将满足该接口(interface)。您可以使用

构造一个 DocumentInfo
context.getConfiguration().buildDocument()

如果您想使用一些外部对象模型(例如 DOM 或 JDOM2)构建您的文档,您将需要获取该外部文档的根节点并将其包装在适当类型的 Saxon DocumentWrapper 中以使其成为 DocumentInfo。

关于java - Saxon-HE 集成扩展功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com