从输入 xml 到输出 xml 的 XLST 转换

发布于 2024-10-23 00:43:37 字数 1392 浏览 0 评论 0原文

输入 xml 结构:

<Customer>
   <Order>
      <item><name>ID</name><value>11111</value><item>
   </Order>
   <Order>
      <item><name>ID</name><value>11111</value></item>
   </Order>
    <Order>
      <item><name>ID</name><value>22222</value></item>
   </Order>
   <Order>
      <item><name>ID</name><value>33333</value></item>
   </Order>
</Customer>

输出应为:

<Customer>
   <Order>
      <item><name>ID</name><value>11111</value><item>
   </Order>
   <Order>
      <item><name>ID</name><value>11111</value> </item>
   </Order>
</Customer>

<Customer>
  <Order>
      <item><name>ID</name><value>22222</value></item>
   </Order>
</Customer>
<Customer>
  <Order>
      <item><name>ID</name><value>33333</value></item>
   </Order>
</Customer>

此处为...将会动态地出现。 请任何人在 xslt 中根据..给出此转换的解决方案

Input xml structure:

<Customer>
   <Order>
      <item><name>ID</name><value>11111</value><item>
   </Order>
   <Order>
      <item><name>ID</name><value>11111</value></item>
   </Order>
    <Order>
      <item><name>ID</name><value>22222</value></item>
   </Order>
   <Order>
      <item><name>ID</name><value>33333</value></item>
   </Order>
</Customer>

Output should be :

<Customer>
   <Order>
      <item><name>ID</name><value>11111</value><item>
   </Order>
   <Order>
      <item><name>ID</name><value>11111</value> </item>
   </Order>
</Customer>

<Customer>
  <Order>
      <item><name>ID</name><value>22222</value></item>
   </Order>
</Customer>
<Customer>
  <Order>
      <item><name>ID</name><value>33333</value></item>
   </Order>
</Customer>

Here the <Customer>.<Order>.<item>.<value> will come dynamically.
Please anyone give a solution for this transformation in xslt based on <Order>.<item>.<value>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的奇迹 2024-10-30 00:43:37

这是一个标准的分组问题。在 XSLT 2.0 中,使用

<xsl:template match="Customer">
 <xsl:for-each-group select="Order" group-by="item/value">
  <Customer>
    <xsl:copy-of select="current-group()"/>
  </Customer>
 </xsl:for-each-group>
</xsl:template>

如果您卡在 XSLT 1.0 上,那就有点棘手:查找“Muenchian Grouping”(或 Dimitre Novaatchev 对此论坛上的问题的许多回复)。

This is a standard grouping problem. In XSLT 2.0, use

<xsl:template match="Customer">
 <xsl:for-each-group select="Order" group-by="item/value">
  <Customer>
    <xsl:copy-of select="current-group()"/>
  </Customer>
 </xsl:for-each-group>
</xsl:template>

If you're stuck on XSLT 1.0, it's a bit more tricky: look up "Muenchian Grouping" (or many replies by Dimitre Novatchev to questions on this forum).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文