使用 XSLT 合并 2 个具有匹配“id”属性的 XML 文件

2024-05-22

当存在匹配的“id”属性时,我想使用 XSLT 合并 2 个 XML 文件。

myFile1.xml(这是第一个输入文件)

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <test>
      <node>
        <type id="a">
          <name>joe</name>
          <name>kill</name>
        </type>
      </node>
      <node>
        <type id="b">
          <name>sam</name>
        </type>
      </node>
    </test>

myFile2.xml(这是第二个输入文件)

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <test>
      <node>
        <type id="a">
        <name>jill</name>
        <name>kill</name>
        </type>
      </node>
    </test>

mergeOutput.xml(这是 id 匹配且合并 2 个文件的预期输出)

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <test>
      <node>
        <type id="a">
          <name>joe</name>
         <name>jill</name> 
          <name>Kill</name>
        </type>
      </node>
      <node>
        <type id="b">
          <name>sam</name>
        </type>
      </node>
    </test>

任何 XSLT 代码或代码链接都会有所帮助。我没有 XSLT 知识,也没有使用此合并来使事情正常运行。


XSLT 2.0解决方案:

<xsl:template name="main">
  <test>
    <node>
      <xsl:for-each-group select="(doc('myFile1.xml'), doc('myFile2.xml'))/test/node/type"
                          group-by="@id">
        <type id="{@id}">
          <xsl:copy-of select="current-group()/*"/>
        </type>
      </xsl:for-each-group>
    </node>
  </test>
</xsl:template>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XSLT 合并 2 个具有匹配“id”属性的 XML 文件 的相关文章

  • 将 xml 加载到 php 文件时出现“xmlParseEntityRef:无名称”警告

    我正在使用 php 读取 xmlsimplexml load file 然而 当尝试加载 xml 时 它会显示警告列表 Warning simplexml load file function simplexml load file
  • JAXB 将不需要的命名空间声明附加到标签

    我正在实现 XMPP 的自制子协议 并且使用 StAX 和 JAXB 的组合来解析 编组消息 当我整理一条消息时 我最终会得到大量不需要的命名空间声明
  • 合并行并用 group_by 和? 填充空位置

    对 R 编码非常陌生 我一直在尝试使用 dplyr 中的 group by 格式化 合并 df 中的行 然而 我还没有完全做到这一点 这是我的数据表的简化 前三个条目共享相同的 id 最后两个条目共享相同的 id ID Assay1 Ass
  • 使用 ApacheFOP 从 Java 中的 XML 生成 PDF

    我正在尝试从 Java 对象生成即时 PDF 报告 我找不到很多这方面的例子 所以我一直在关注这个例子 http svn apache org viewvc xmlgraphics fop trunk examples embedding
  • 如何使用 PHP 读取/显示 XML

    有没有办法使用 PHP 读取 external xml 来自不同网站的 xml 文件 我知道有一种方法可以使用 JavaScript 读取 XML 但前提是它们都位于同一根目录中 您能否提供有关如何获取 xml 文件的示例 然后阅读以下内容
  • JAXB 是否支持在不进行编组/反编组的情况下修改现有 XML 文档?

    我想在文档中保留注释 排序等 并使用 Java 界面就地编辑文档 JAXB 这样做吗 其他工具 例如 XMLBeans 是否可以执行此操作 您可以使用 JAXBBinder http download oracle com javase 6
  • 处理 CFchart 时的实际 XML 文件位置

    谁能告诉我在使用 Coldfusion 时是否需要将 xml 文件放在单独的目录中 现在我已将 xml 文件保存在 cfm 文件所在的同一目录中 当我运行文件 cfm 时 它说 Could not locate the style file
  • PHP/XML - 如何读取多个子内容

    我需要创建一个包含此 XML 文件中所有主题值的数组 ISIN 列表似乎工作正常 第一个属性值 但主题值不起作用 我想最终得到一个看起来像这样的数组 Companys array 0 gt array isin gt DK001024701
  • Java中如何保存DOM文档?

    我在用DOM解析器和XPATH解析我的XML文件 我改变了一个节点的值Document Object 然而当我打开我的XML文件 它没有向我显示任何反射 我的DOM解析器代码如下 private void setPortNumber int
  • XSLT打开其他xml文件

    我即将合并 XML 文件 并添加元信息 其相对路径在我的输入 XML 文件中指定 我要合并的文件位于名为 files 的子目录中 输入文件的结构如下
  • PHP 对象作为 XML 文档

    获取给定 PHP 对象并将其序列化为 XML 的最佳方法是什么 我正在查看 simple xml 并用它来将 XML 解析为对象 但我不清楚它是如何以相反的方式工作的 我同意使用 PEAR 的 XML Serializer 但是如果您想要一
  • 禁用特定 java 包的所有 checkstyle 检查

    我有两个包 即 com mydomain abc delegate xyz jaxws 托管 and com mydomain abc xyz jaxws managed 我要求仅对第二个包禁用 checkstyle 因为它们包含自动生成的
  • 从 shell 查找不包含特定注释的 XML 文件

    我想搜索 awk grep sed 几个 XML 文件 pom xml 文件 跳过某些文件夹 而且 第一个条件是它们必须包含标签
  • Android - 可绘制形状样式的多种颜色和尺寸

    我试图为我的 TextView 设置圆形背景 因此我创建了如下形状样式 但我需要有多种颜色和多种尺寸 而 textSize 保持不变 所以我需要在样式中设置宽度 高度 以我的理解 图层列表 http developer android co
  • 在Java中解析各种自定义XML文档的最佳方法

    使用 Java 解析多个离散的自定义 XML 文档的最佳方法是什么 我会用Stax http jcp org en jsr detail id 173解析 XML 它快速且易于使用 我在上一个项目中一直使用它来解析最大 24MB 的 XML
  • 为什么 XML 中的节点和元素不同?理由是什么? [复制]

    这个问题在这里已经有答案了 编写操作 XML 的代码已经有一段时间了 我一直想知道同时拥有节点和元素的原因是什么 我们知道有什么区别 https stackoverflow com questions 132564 whats the di
  • 在 C# 中使用(IDisposable obj = new ...) 在流中写入代码块(例如 XML)

    我已经开始使用实现 IDisposable 的类通过 using 语句在流中写入块 这有助于保持正确的嵌套并避免丢失或错误放置开始 结束部件 基本上 构造函数写入块的开头 例如打开 XML 标签 Dispose 写入结束 例如关闭 XML
  • 使用 LinearLayout 将按钮放在屏幕底部?

    我有以下代码 如何使 3 个按钮位于底部
  • 通过 XSL 查看 XML 到 XHTML 转换中的源代码

    我正在尝试使用 XSL 文件将 XML 文件转换为 XHTML 文件 如何查看转换后输出的XHTML源代码 我目前正在通过 Firefox 查看结果 但我看到的只是 XHTML 文件的渲染版本 我想查看源代码 但是当我转到 查看 gt 页面
  • neo4j cypher更新现有节点或创建新节点

    我有一个包含大约 900 万个节点和 1200 万个关系的图 对于图中的每个节点 每个节点都有一个属性子集 这些属性通过标签形成节点的唯一标识 该图正在通过各种数据源进行更新 这些数据源会增加图中的现有节点 或者在节点不存在时创建新节点 我

随机推荐