如何使用 Java 通过 XSL 转换 XML

2023-12-13

我目前正在使用标准 javax.xml.transform 库通过 XSL 将 XML 转换为 CSV。我的 XSL 文件很大 - 大约 950 行。我的 XML 文件也可能很大。

它在原型阶段运行良好,只有大约 50 行左右的一小部分 XSL。现在,在“最终系统”中,当执行转换时会出现错误分支目标偏移量对于短期而言太大.

private String transformXML() {
    String formattedOutput = "";
    try {

        TransformerFactory tFactory = TransformerFactory.newInstance();            
        Transformer transformer =
                tFactory.newTransformer( new StreamSource( xslFilename ) );

        StreamSource xmlSource = new StreamSource(new ByteArrayInputStream( xmlString.getBytes() ) );
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        transformer.transform( xmlSource, new StreamResult( baos ) );

        formattedOutput = baos.toString();

    } catch( Exception e ) {
        e.printStackTrace();
    }

    return formattedOutput;
}

我看到了一些关于此错误的帖子,但不太确定该怎么做。
我在代码方面做错了什么吗? 是否有任何替代的第三方变压器可以做到这一点?

Thanks,

Andez


Try Saxon反而。

您的代码将保持不变。您需要做的就是设置javax.xml.transform.TransformerFactory to net.sf.saxon.TransformerFactoryImpl在 JVM 的系统属性中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Java 通过 XSL 转换 XML 的相关文章

随机推荐

  • 使用 dompdf 生成 pdf 图像时出错

    我必须在生成的 PDF 的每一页中显示徽标 虽然它在本地系统中工作正常 但在服务器中抛出以下异常 Fatal error Uncaught exception PDFlibException with message Handle para
  • 如何在 JScrollPane 中获取 JScrollPanes 以跟随父级的大小调整

    所以我有一堆JTables Each JTable是在一个里面JScrollPane 然后我将添加其中的每一个JScrollPanes to a JPanel 然后我添加这个JPanel to a JScrollPane然后到另一个JPan
  • 为什么我无法用 Prolog 得到 Ship Puzzle 的答案?

    我需要使用 Prolog 解决 Ship Puzzle 问题 以下是事实 有5艘船 希腊的船六点出发 载着咖啡 中间的船有一个黑色的烟囱 英国船九点出发 有蓝色烟囱的法国船位于一艘运载咖啡的船的左侧 运载可可的船的右侧是一艘开往马赛的船 这
  • 检测序列的排列

    我有一个像这样的数字列表 数组 1 2 3 4 所以我的目标是检查给定的另一个数组 如果该数组是原始示例的排列 则该数组 3 4 1 2 and 1 2 4 3 是原始的排列 但是 1 2 1 1 or 1 5 4 3 not 两种可能的解
  • 确定重叠 DATETIME 范围的最大数量

    我有一张桌子 上面有一些DATETIME范围 比如 id start end 1 2011 12 18 16 00 00 2011 12 18 17 00 00 2 2011 12 19 08 00 00 2011 12 19 10 00
  • 何时从 QAbstractItemModel 发出 dataChanged

    在 Qt 中 我有一个模型子类化QAbstractItemModel 它是显示在 QTreeView 中的树 该模型支持各种形式的更改 并且都可以正常工作 相关的两个是 1 少量相关行中的部分数据发生变化 2 可视化更改意味着大多数行应更改
  • 从线性探测转向二次探测(哈希冲突)

    我当前的哈希表实现是使用线性探测 现在我想转向二次探测 后来转向链接 也许还有双重哈希 我读过一些文章 教程 维基百科等 但我仍然不知道我到底应该做什么 基本上 线性探测的步长为 1 这很容易做到 当从哈希表中搜索 插入或删除元素时 我需要
  • tinyMCE 编辑栏未显示

    我正在运行 Plone 4 1 4 当我尝试编辑用于显示tinyMCE 编辑器的文本区域时 我得到的只是一个列出 有效元素 字典的对话框 我安装了 kupu 编辑器并且工作正常 但我更喜欢tinyMCE 有人遇到过这个问题吗 任何帮助将不胜
  • 如何反序列化包含不同类型对象的json数组

    这是一个 json 片段 其中包含一个数组 图标 其中可以包含两种不同类型的对象 应用程序和文件夹 icons application displayName Facebook bundleId com facebook com folde
  • npm 安装错误 - 无法获取本地颁发者证书

    我正在得到一个unable to get local issuer certificate执行 npm install 时出错 typings ERR message Unable to read typings for es6 shim
  • 向内存中的特定地址/位置显式分配或访问值?

    我的确切问题是 其中有任何规定c and c 将值显式分配给特定地址例如假设我想存储20 at 0x1846010内存中的地址 我还想使用同一地址访问一个值 0x1846010 可能很容易 但我真的很困惑如果可以的话如何做到这一点 任何人都
  • JSF f:ajax 不会立即渲染

    我有这样的输入文本
  • VS code,julia linter 不起作用(在 Mac 上)

    在向自己保证 Julia 已启用并且 linter 也已启用 在 VS Code 设置中 Julia Lint Run 后 我在 xxx jl 脚本上得到语法高亮显示 但根本没有 linting 我在最新的 vs code 最新的朱莉娅 1
  • C 中的正则表达式:示例?

    我正在寻找一些关于如何在 ANSI C 中使用正则表达式的简单示例和最佳实践 man regex h并没有提供那么多帮助 正则表达式实际上不是 ANSI C 的一部分 听起来您可能正在谈论 POSIX 正则表达式库 它随大多数 所有 nix
  • Visual Studio 包构建和私有 bin 路径中的 DLL

    我正在使用 MEF 来做一种粗略的插件架构 这运作良好 但是 当我使用 Visual Studio 包 发布构建任务 我通过 NAnt MSbuild 调用 进行部署时 我未引用的插件程序集未包含在包中 因此未部署 有没有办法告诉 VS M
  • 使用 NetBeans 从 java 项目制作可执行文件 [重复]

    这个问题在这里已经有答案了 我在 NetBeans 中创建了一个 java 项目 现在我想用它制作一个可执行文件 该文件可以在安装了 JDK 或 JRE 但没有安装 NetBeans 或任何其他 Java IDE 的其他计算机上执行 运行
  • android hellomap 示例给出异常

    06 14 22 13 33 992 ERROR AndroidRuntime 331 Uncaught handler thread main exiting due to uncaught exception 06 14 22 13 3
  • JavaFXPorts(Gluon 插件) 在 Android 上保存文件

    我在使用 JavaFxPorts 在 Android 上保存文件时遇到问题 我找到了那个链接here 但这对我不起作用 它没有找到接口 我无法使用它 我的目标是使用 JavaFxports 在 Android 上保存文件 Thanks 如果
  • 如何根据 Combobox 的值更改 DataGridView 单元格颜色?

    我有一个 datagridview 如下 我想 当表单加载时 如果Gender列的值为Male 列对应的颜色单元格Name将会是白色的 当 if 改变列的值时Gender 男 女 该列的颜色单元格Name将是深灰色 否则如果更改列的值Gen
  • 如何使用 Java 通过 XSL 转换 XML

    我目前正在使用标准 javax xml transform 库通过 XSL 将 XML 转换为 CSV 我的 XSL 文件很大 大约 950 行 我的 XML 文件也可能很大 它在原型阶段运行良好 只有大约 50 行左右的一小部分 XSL