連結文字列から重複値を削除します。XSLTの連結文字列から重複値を削除します。
入力は次のとおりです。
<?xml version="1.0" encoding="ISO-8859-1"?>
<QL>
<QITEM>
<SERIAL>123</SERIAL>
<PROD_NAME>User/Device</PROD_NAME>
</QITEM>
<QITEM>
<SERIAL>123</SERIAL>
<PROD_NAME>User/Dev</PROD_NAME>
</QITEM>
<QITEM>
<SERIAL>123</SERIAL>
<PROD_NAME>User/Device</PROD_NAME>
</QITEM>
<QITEM>
<SERIAL>1234</SERIAL>
<PROD_NAME>45 Mbps</PROD_NAME>
</QITEM>
</QL>
<QL>
<QITEM>
<SERIAL>123</SERIAL>
<PROD_NAME>User/Device</PROD_NAME>
</QITEM>
<QITEM>
<SERIAL>123</SERIAL>
<PROD_NAME>User/Dev</PROD_NAME>
</QITEM>
<QITEM>
<SERIAL>123</SERIAL>
<PROD_NAME>User/Device</PROD_NAME>
</QITEM>
<QITEM>
<SERIAL>1234</SERIAL>
<PROD_NAME>45 Mbps</PROD_NAME>
</QITEM>
</QL>
私は値を連結したいと出力は以下のようにする必要があります:
<Result>
<SERIAL>123,1234</SERIAL>
<PROD_NAME>User/Dev,User/Device,45 Mbps</PROD_NAME>
</Result>
<Result>
<SERIAL>123,1234</SERIAL>
<PROD_NAME>User/Dev,User/Device,45 Mbps</PROD_NAME>
</Result>
これまでのところ、私は次のテンプレートでこれを達成しようとしています
<xsl:template name="join">
<xsl:param name="list"/>
<xsl:param name="separator"/>
<xsl:for-each select="$list">
<xsl:value-of select="."/>
<xsl:if test="position() != last()">
<xsl:value-of select="$separator"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
これはカンマで区切られた値を与えています。
しかし、私は一意の値を取得したい。
だから ' User/Dev '値に何が起こったのですか? –
申し訳ありませんが誤植でした。今質問を更新しています –
あなたは何と苦労していますか? 'distinct-values(// SERIAL)'は、例えば '123,1234'というシーケンスを与えます。 –