嗨,我是 XSLT 的偶尔用户,所以可能遗漏了一些明显的东西,但希望有人能指出来!
原始 XML 具有结构;
<test>
<input>a</input>
<input>b</input>
<input>c</input>
<input>d</input>
<input>e</input>
</test>
XSL 文件包含以下处理命令;
<xsl:template name="convertInputToNumeric">
<xsl:param name="inputs" />
<xsl:for-each select="input">
<NumericCode>
<xsl:call-template name="toNumericCode">
<xsl:with-param name="type">Input</xsl:with-param>
<xsl:with-param name="" select="." />
</xsl:call-template>
</NumericCode>
</xsl:for-each>
</xsl:template>
调用模板“toNumericCode”获取当前输入并在另一个 xml 文件中查找输入的数字表示,例如输入“a”返回值“001”
<Conversion type="Input">
<Convert>
<FROM>a</FROM>
<TO>001</TO>
</Convert>
<Convert>
<FROM>b</FROM>
<TO>002</TO>
</Convert>
<Convert>
<FROM>c</FROM>
<TO>001</TO>
</Convert>
<Convert>
<FROM>d</FROM>
<TO>001</TO>
</Convert>
<Convert>
<FROM>e</FROM>
<TO>002</TO>
</Convert>
</Conversion>
所以运行我目前得到的 XSL
<test>
<NumericCode>001</NumericCode>
<NumericCode>002</NumericCode>
<NumericCode>001</NumericCode>
<NumericCode>001</NumericCode>
<NumericCode>002</NumericCode>
</test>
但实际上我想要的是我只得到不同的节点,例如
<test>
<NumericCode>001</NumericCode>
<NumericCode>002</NumericCode>
</test>
我不知道如何最好地做到这一点,因为我想根据从模板“toNumericCode”返回的数字代码值而不是初始输入值进行分组?