如何组合多个xml并为组合的XML准备XSLT 以上是一个XML的XSLT

Posted

技术标签:

【中文标题】如何组合多个xml并为组合的XML准备XSLT 以上是一个XML的XSLT【英文标题】:How to combine multiple xml and prepare XSLT for the combined XML The above is the XSLT for one XML 【发布时间】:2021-10-31 18:27:27 【问题描述】:

如何组合多个 XML 并为组合的 XML 准备 XSLT? 我尝试将多个 XML 合并为一个,并尝试为该 XML 准备 XSLT 转换。以上是一个 XML 的 XSLT。需要为组合的 XML 准备 XSLT。

XML-1
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
  </cd>
</catalog>
XML-2
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <cd>
    <title>Empire Burlesque-1</title>
    <artist>Bob Dylan-1</artist>
  </cd>
</catalog>

XSLT

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> 
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th style="text-align:left">Details</th>
      <th style="text-align:left">XML-1</th>
    </tr>
 <tr>
    <xsl:for-each select="catalog/cd">
         ​  <td>Title</td>
     ​      <td><xsl:value-of select="title"/></td>
    </xsl:for-each>
</tr>

​<tr>
   ​ <xsl:for-each select="catalog/cd">
            <td>Artist</td>
            <td><xsl:value-of select="artist"/></td>
    </xsl:for-each>
</tr>  

</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

The above is the XSLT for one XML. Need to prepare XSLT for the combined XML

  [1]: https://i.stack.imgur.com/g8ce7.jpg

【问题讨论】:

向我们展示两个 XML 输入的小而有代表性的样本,XSLT 用于单个文件,以及您想要的两个样本的输出。还要说明您使用的 XSLT 版本和/或 XSLT 处理器。 @MartinHonnen XML-1 Steven60 XML-2 Mathew55 XSLT 我需要的是带边框的表格格式 Columns 2-Director and age Director Age Steven 60 Mathew 55 @MartinHonnen 我正在使用此链接进行 xslt 转换 w3schools.com/xml/… @MartinHonnen 请编辑您的问题,以格式正确的方式显示问题中的任何代码示例。 【参考方案1】:

&lt;xsl:for-each select="catalog/cd"&gt; 更改为例如&lt;xsl:for-each select="catalog/cd | document('XML-2.xml')/catalog/cd"&gt;,同时处理第二个文档。

【讨论】:

如何合并多个xml? 如图所示,通过使用document函数加载辅助输入文档。

以上是关于如何组合多个xml并为组合的XML准备XSLT 以上是一个XML的XSLT的主要内容,如果未能解决你的问题,请参考以下文章

使用 XSLT 组合具有相同 ID 及其值的节点 (XML)

XSLT 将具有相同 ID 的行项目组合到单独的记录中

使用 XSLT 将 XML 转换为 CSV,用于在单个标记中以空格分隔的多个记录

如何使用 XSLT 复制 XML 以生成相同形式的另一个新 XML

如何在 Python 中创建多个 for 循环列表的递归以获得组合? [复制]

将多个具有相似匹配项的 XSLT 模板组合起来