xslt 使用分隔符连接一个类型的所有后代

xslt concatenate all descendants of a type using a separator

我正在使用 XSL 将 HTML 文档转换为 XML。如何使用分隔符连接特定类型的所有后代节点中的文本?例如,我有一个 table 节点,它有几个 td 节点作为后代,如何组合所有这些 td 元素中的文本?对于以下输入并使用 ',' 作为分隔符,输出应为 'value1,value2,value3,value4'

<table>
    <tr>
        <td>value1</td>
    </tr>
    <tr>
        <td>
            <table>
                <tr>
                    <td>value2</td>
                    <td>value3</td>
                </tr>
                <tr>
                    <td>value4</td>
                </tr>
            </table>
        </td>
    </tr>
</table>

尝试:

<xsl:value-of select="//td[text()]" separator=","/>

或:

<xsl:value-of select="string-join(//td[text()],',')"/>

string-join()AVT's.

中特别有用