gpt4 book ai didi

java - 有没有办法在 JAXP 或 Xalan XSLT 范围内绑定(bind) Java 对象?

转载 作者:行者123 更新时间:2023-12-02 08:12:41 27 4
gpt4 key购买 nike

Xalan-J 让我们 create and manipulate java objects使用它的扩展机制。我想要做的是从 Java(从调用 Xalan 的 JVM)传递一个已创建的对象,然后从 xslt 操作该对象。

例如,我想做这样的事情:

Transformer transformer = tFactory.newTransformer(new StreamSource(xsl));
HashMap mymap = ...
transformer.setParameter("MapToBeManipulatedByXsl", mymap);
transformer.transform(...)
String fromXSL = mymap.get("some-key-added-by-xsl");

这可能吗?

最佳答案

这与使用 Xalan-J 获得的集成级别并不完全相同,但到目前为止,我所处理过的使用 XSL 操作 Java 对象的最简单方法是使用 JAXB 将对象转换为对象或从对象转换为对象XML。

JAXB 允许您使用标记来注释 Java 对象,指定您希望它们如何出现在其等效 XML 文档中,然后完成 Java 到 XML 和 XML 到 Java 的所有转换工作。获取您的 Java 对象,通过 JAXB 运行它,对其运行 XSL,然后通过 JAXB 运行它以恢复 Java 对象。

该技术的优点包括:

  • 您不受特定 XSL 环境或解释器的束缚。你的XSL 只在 XML 上运行。
  • 从 Java 到 XML 的转换是 JRE 的核心部分,并且不需要任何第三方库
  • 您可以独立于 Java 对 XSL 进行单元测试应用程序环境,通过传入文本文件并验证输出

关于java - 有没有办法在 JAXP 或 Xalan XSLT 范围内绑定(bind) Java 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099202/

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