如何从 XSLT 2.0 中的 For-Each 获取重复元素

How to get repeated element from For-Each in XSLT 2.0

我想在 XSLT 2.0 中获取重复元素。但是有一个限制,我必须只使用 "For-each" 循环来做到这一点。

输入XML:

<Data>
<Movie>
<name>A</name>
<writer>B</writer>
<writer>C</writer>
<director>D</director>
</Movie>
<Movie>
<name>A</name>
<writer>B</writer>
<writer>C</writer>
<director>D</director>
</Movie>
</Data>

预期输出 XML:

<Imdb>
<Film>
<writer>B</writer>
<writer>C</writer>
</Film>
<Film>
<writer>B</writer>
<writer>C</writer>
</Film>
</Imdb>

当前输出:

<?xml version="1.0" encoding="UTF-8"?>
<Imdb>
   <Film>
      <writer>B</writer>
      <writer>B</writer>
   </Film>
</Imdb>

MyXSLT:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     <xsl:output method="xml" encoding="UTF-8" indent="yes" />

    <xsl:template match="Data">
        <Film>

 <xsl:for-each select="Movie">
  <writer>     
<xsl:value-of select="writer" />
</writer>
</xsl:for-each>
        </Film>

    </xsl:template>
</xsl:stylesheet>

注:

我只需要使用for each 循环或for each group by 循环来完成上述任务。所以任何人都可以提供帮助。

这样试试?

<xsl:template match="/Data">
    <Imdb>
        <xsl:for-each select="Movie">
            <Film>
                <xsl:copy-of select="writer"/>
            </Film>
        </xsl:for-each>
    </Imdb>
</xsl:template>

我不明白你的意思:

I need to achieve the above mentioned task only with for each loop or for each group by loop.

您确定要使用最高效的代码来完成上述任务吗?