如何使用 xslt 获取具有数据的标签名称
how to get tags name that have data with xslt
我有 XML 有效负载,看起来像
<payload>
<field1>data1</field1>
<field2>data2</field2>
<field3>data3</field3>
<field4></field4>
</payload>
我希望函数获取包含数据的标签名称并将其转换为以下结果
result : field1,field2,field3
有办法实现吗?
您可以在 XSLT-1.0 样式表中使用这两个模板:
<xsl:template match="/">
result: <xsl:apply-templates select="payload/*[normalize-space(.)]" />
</xsl:template>
<xsl:template match="*">
<xsl:value-of select='name()' />
<xsl:if test="position()!=last()"><xsl:text>,</xsl:text></xsl:if>
</xsl:template>
它的输出是:
result: field1,field2,field3
<xsl:value-of select="/payload/*[normalize-space()]" separator=", "/>
应在 XSLT 2 或 3 中执行。
我有 XML 有效负载,看起来像
<payload>
<field1>data1</field1>
<field2>data2</field2>
<field3>data3</field3>
<field4></field4>
</payload>
我希望函数获取包含数据的标签名称并将其转换为以下结果
result : field1,field2,field3
有办法实现吗?
您可以在 XSLT-1.0 样式表中使用这两个模板:
<xsl:template match="/">
result: <xsl:apply-templates select="payload/*[normalize-space(.)]" />
</xsl:template>
<xsl:template match="*">
<xsl:value-of select='name()' />
<xsl:if test="position()!=last()"><xsl:text>,</xsl:text></xsl:if>
</xsl:template>
它的输出是:
result: field1,field2,field3
<xsl:value-of select="/payload/*[normalize-space()]" separator=", "/>
应在 XSLT 2 或 3 中执行。