我正在尝试从XML格式化表格.可以说我在XML中有这一行
<country>Dominican Republic</country>
Run Code Online (Sandbox Code Playgroud)
我想让我的桌子看起来像这样
<td class="country DominicanRepublic">Dominican Republic</td>
Run Code Online (Sandbox Code Playgroud)
我试过这个:
<td class="country {country}"><xsl:value-of select="country"/></td>
Run Code Online (Sandbox Code Playgroud)
这个:
<xsl:element name="td">
<xsl:attribute name="class">
<xsl:text>country </xsl:text>
<xsl:value-of select="normalize-space(country)"/>
</xsl:attribute>
<xsl:value-of select="country"/>
</xsl:element>
Run Code Online (Sandbox Code Playgroud)
在normalize-space()不删除名字的两个部分之间的空间,我不能用<xsl:strip-space elements="country"/>,因为我需要空间,当我显示表格单元格中的名称.
如何从类中的值中删除空格,而不是单元格中的文本?
Mad*_*sen 11
使用translate()函数将空格''替换为'':
<xsl:element name="td">
<xsl:attribute name="class">
<xsl:text>country </xsl:text>
<xsl:value-of select="translate(country,' ','')"/>
</xsl:attribute>
<xsl:value-of select="country"/>
</xsl:element>
Run Code Online (Sandbox Code Playgroud)
您可以使用normalize-space(),它将删除任何前导和尾随空格,并将字符之间的多个空格转换为单个空格.然后,发送结果translate()以替换任何剩余的空格:
<xsl:element name="td">
<xsl:attribute name="class">
<xsl:text>country </xsl:text>
<xsl:value-of select="translate(normalize-space(country),' ','')"/>
</xsl:attribute>
<xsl:value-of select="normalize-space(country)"/>
</xsl:element>
Run Code Online (Sandbox Code Playgroud)