如何通过 XSLT 在 Java 中合并 2 个 XML 流

2024-03-20

我想在 Java 中合并 2 个 XML 流(字符串),必须通过 XSLT(我可以更改转换),但问题是 XML 作为字符串出现。有很多例子,但是通过文件。 可以在不将它们保存在文件中的情况下完成此操作吗?

Thanks.


我只知道一种使用自己的实现的方法URI解析器 http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/URIResolver.html.

public final class StringURIResolver implements URIResolver {
    Map<String, String> documents = new HashMap<String, String>();

    public StringURIResolver put(final String href, final String document) {
        documents.put(href, document);
        return this;
    }

    public Source resolve(final String href, final String base)
    throws TransformerException {
        final String s = documents.get(href);
        if (s != null) {
            return new StreamSource(new StringReader(s));
        }
        return null;
    }
}

像这样使用它:

final String document1 = ...
final String document2 = ...
final Templates template = ...
final Transformer transformer = template.newTransformer();
transformer.setURIResolver(new StringURIResolver().put("document2", document2));
final StringWriter out = new StringWriter();
transformer.transform(new StreamSource(new StringReader(document1)),
    new StreamResult(out));

在转换中,像这样引用它:

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

如何通过 XSLT 在 Java 中合并 2 个 XML 流 的相关文章

  • 如何从 WifiP2pDeviceList 获取 wifi direct 设备名称

    我想在执行请求对等点时获取 wi fi direct 名称 这是我的代码 if WifiP2pManager WIFI P2P PEERS CHANGED ACTION equals action Log d tag success dis
  • 如何让Spring RabbitMQ创建一个新的队列?

    根据我对rabbit mq的 有限 经验 如果您为尚不存在的队列创建新的侦听器 则会自动创建该队列 我正在尝试将 Spring AMQP 项目与rabbit mq 一起使用来设置侦听器 但出现错误 这是我的 xml 配置
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • 在 TestNG 中运行多个类

    我正在尝试自动化一个场景 其中我想登录一次应用程序 然后进行操作而无需再次重新登录 考虑一下 我有在特定类的 BeforeSuite 方法中登录应用程序的代码 public class TestNGClass1 public static
  • 要打乱的键值(整数、字符串)列表的最佳结构

    我需要在 Java 中实现一个结构 它是一个键值列表 类型为整数 字符串 并且我想对其进行洗牌 基本上 我想做类似的事情 public LinkedHashMap
  • 哈希码是否用于加速集合中的对象查找?

    IIUC 相同类型的两个不同对象可以存储在 HashSet 中 即使两个对象在以下情况下返回相同的值 hashCode 叫做 例如根据本文 https eclipsesource com blogs 2012 09 04 the 3 thi
  • 正确使用 JDBC 连接池 (Glassfish)

    我需要在 Java Web 服务中作为会话 bean 实现数据库连接 但我不确定我这样做是否正确 我创建了一个类 public final class SQLUtils private static DataSource m ds null
  • 如何将自定义日志处理程序添加到 Google App Engine?

    我正在尝试向我的 java 应用程序添加自定义日志处理程序 我已经实现了一个扩展 java util Logging Handler 类的 InnerLogger 类 在我的logging properties中声明为处理程序 handle
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • 以编程方式设置 Logback Appender 路径

    我正在尝试以编程方式设置 Logback 附加程序路径 滚动文件附加器 http logback qos ch apidocs ch qos logback core rolling RollingFileAppender html准确地说
  • 从 sbt 程序集运行 uber jar 会导致错误:无法找到或加载主类

    我有一个使用 sbt 程序集插件打包为 uber jar 的 Spark 作业 这build sbt指定一个可运行的 main 作为生成的 uber jar 的目标 mainClass in assembly Some com foo Ba
  • 打印 jasper 文件时执行报表 SQL 语句时出错

    我修改了一个旧项目 但无法确定这段代码有什么问题 使用下面的 jrxml它创造 jasper文件 当我打印 jasper 文件时 使用此代码JasperPrint jasperPrint JasperFillManager fillRepo
  • SimpleDateFormat 将 lenient 设置为 false 时出现异常

    为什么这段代码会抛出无法解析日期的异常 SimpleDateFormat f new SimpleDateFormat yyyy MM dd T HH mm ss 000Z f setLenient false String dateStr
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 在 eclipse 之外将 Spring MVC 应用程序部署到 tomcat 的幕后会发生什么?

    我猜想使用像 eclipse 这样很棒的 IDE 的一个缺点是你会忽略应用程序幕后发生的事情 我是一名 Ruby 开发人员 所以不是一名 Java 老手 所以我一直在用 java 编写一个项目 并使用 spring 框架进行 IOC 和 M
  • 为什么现在()? (客观化)

    为什么我想要异步加载 Objectify 实体 异步加载到底意味着什么 根据客观化有关加载的文档 https code google com p objectify appengine wiki BasicOperations Loadin
  • 方法签名中带或不带synchronized关键字的方法具有相同的字节码

    对于以下 2 个类 获得相同的 Java 字节码 java版本 java 版本 1 8 0 181 Java TM SE 运行时环境 构建 1 8 0 181 b13 Java HotSpot TM 64 位服务器 VM 内部版本 25 1
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我
  • 如何使用剪辑来减少绘画时间?

    我正在尝试使用 Clip 来减少 CPU 负载 但剪辑在屏幕上留下了一些我似乎无法摆脱的垃圾 另外 打开和关闭剪辑似乎对 CPU 负载没有影响 在任一情况下 大部分时间似乎都花在重绘管理器和绘制缓冲图像上 import static jav
  • Libgdx 和 Google 应用内购买结果

    我遵循了这些指示 https github com libgdx libgdx wiki Interfacing with platform specific code使用 ActionResolver 接口集成 Libgdx 和原生 An

随机推荐

  • 获取特定列值的 SSRS 矩阵行总计

    在 Microsoft Sql Server 报告服务 2008 R2 中Matrix 我想添加一列 显示一个数据项除以该行数据项总数的百分比 Total的表达式为 Sum Fields Count Value 我如何访问该行的成功总和成功
  • 我应该如何将字典编码为 HTTP GET 查询字符串?

    HTTP GET 查询字符串是键 值对的有序序列 spam eggs spam ham foo bar 在某些语义下 相当于以下字典 spam eggs ham foo bar 这恰好适用于所请求页面的布尔属性 expand 1 expan
  • 使用 LINQ2SQL 插入新的子级+父级

    与 LINQ2SQL 作斗争 我是新手 到目前为止一切都还好 但这个问题确实让我悲伤 我有两个对象 父对象和子对象 定义如下 Table Name Parent public class Parent Column IsPrimaryKey
  • 关闭时似乎有 6 个泄漏的信号量对象需要清理 warnings.warn('resource_tracker: 似乎有 %d

    我正在尝试通过 python 3 8 在我的 Firebase 实时数据库上进行测试连接 我有两个脚本 一个是wdata 写入数据 另一个是rdata 读取数据 wdata py 是 from firebase import firebas
  • shell 脚本删除文件(如果已存在)

    我正在研究一些将数据存储在文件中的东西 但每次我运行脚本时 它都会附加到前一个文件中 我需要有关如何删除该文件 如果该文件已存在 的帮助 不必费心检查该文件是否存在 只需尝试将其删除即可 rm f p a t h or rm p a t h
  • Python:获取字符串的大小(以字节为单位)

    我有一个要通过网络发送的字符串 我需要检查它所表示的总字节数 sys getsizeof string name 返回额外的字节 例如对于sys getsizeof a 返回 22 而在 python 中 一个字符仅用 1 个字节表示 还有
  • Java 应用程序不显示输出

    这是我更新的代码 package car1 公共类主要 公共静态无效主 字符串 args HondaCivic 类实现 car1 int speed 0 int rpm 0 int gear 1 public void speedUp in
  • 如何使用 Jersey REST 处理服务不可用的情况

    我有一个与 Spring 集成的球衣 RESTful 服务 web xml 中映射的基本 url 是 rest 我的服务等级如下 Resource Scope request Path service Component public cl
  • 如何在角度材料2中选择默认项目选择多个

    我正在开发 Angular 2 Material 应用程序 我有一个情况 其中存在多选元素 并且我有一个带有复选框的列表 因此我可以一次选择多个项目 我可以使用角度材质组件来实现这一点 但我想要的是默认检查 2 3 个项目 如果我选择 取消
  • Laravel 5 在测试之间重新播种数据库以进行单元测试

    我从一个种子数据库开始 并尝试在 Laravel 5 的单元测试之间重新种子数据库 在 Laravel 4 中 我知道您可以简单地使用 Illuminate Support Facades Artisan 并运行命令 Artisan cal
  • 为什么java.nio.files.Path中没有Path构造函数?

    Path 类没有记录的构造函数 但可以通过以下方式创建实例 Paths get 这是FileSystems getDefault getPath 那么有人可以解释这个设计决策吗 有人可以解释这个设计决定吗 这是因为 JSR 203 允许从多
  • ManageUserViewModel 类在哪里?

    我使用 ASP Net MVC 5 EF 6 和 Net 4 5 1 创建了一个项目 在某些时候 我需要更改项目所在的命名空间 从 MyTestProject 更改为 MyRealProject 在整个网站上进行这些更改后 我现在在一些视图
  • 避免贫血域模型 - 一个真实的例子

    我试图理解贫血领域模型以及为什么它们被认为是反模式 这是一个现实世界的例子 我有一个 Employee 类 它有大量的属性 姓名 性别 用户名等 public class Employee public string Name get se
  • WCF 与 Java 兼容吗?

    哪些 WCF 服务协议与 Java 配合得很好 TCP 服务绑定是否可与 java 远程处理 Corba EJB JMS 等 配合使用 作为服务端点公开的 Web 服务又如何呢 这些是否已经针对通用 Java WebServices 堆栈进
  • 如何为特定目录设置open_basedir

    我有一个目录 htdocs unsecured我想限制该目录或其子目录中的任何内容访问该目录之外的任何内容 在哪里以及如何设置open basedir仅适用于此目录 您可以设置open basedir在您的 Apache 配置文件 php
  • 将 git lfs ls-files 与 git ls-files ':(attr:filter=lfs)' 进行比较是否是检测不受 lfs 管理的 lfs 文件的可靠方法?

    我尝试找到一种方法来确定 git 存储库中的文件是否由 git lfs 正确管理 到目前为止 我发现比较结果git lfs ls files and git ls files attr filter lfs 似乎给了我我想要的 Add Ty
  • Ruby 相当于“grep -C 5”来获取匹配周围行的上下文?

    我对此进行了一些搜索 但我一定使用了错误的术语 ruby 是否有办法 grep 查找字符串 正则表达式并返回周围的 5 行 上面和下面 我知道我可以打电话 grep C 5 或者甚至编写我自己的方法 但这似乎是 ruby 拥有的东西 而我只
  • Mac 上的 auctex 和 emacs

    我想要的是能够成功使用 emacs 和 auctex 一些系统信息 ProductName Mac OS X ProductVersion 10 8 5 BuildVersion 12F45 Emacs Version 24 3 9 0 A
  • 如何在 iPad 版 Objective C 中解析 PDF

    我一直在解析 PDF 文件 请指导我如何做到这一点 头文件 PDFViewer h interface PDFViewer UIView CGPDFDocumentRef pdf void drawInContext CGContextRe
  • 如何通过 XSLT 在 Java 中合并 2 个 XML 流

    我想在 Java 中合并 2 个 XML 流 字符串 必须通过 XSLT 我可以更改转换 但问题是 XML 作为字符串出现 有很多例子 但是通过文件 可以在不将它们保存在文件中的情况下完成此操作吗 Thanks 我只知道一种使用自己的实现的