我想在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>
注意:
我只需要为每个循环或循环每个组实现上述任务。所以任何人都可以请求帮助。
答案 0 :(得分:1)
以这种方式试试吗?
<xsl:template match="/Data">
<Imdb>
<xsl:for-each select="Movie">
<Film>
<xsl:copy-of select="writer"/>
</Film>
</xsl:for-each>
</Imdb>
</xsl:template>
我不知道你的意思:
我需要为每个循环或者实现上述任务 通过循环为每个组。
当然,您希望使用最有效的代码来实现上述任务吗?