复制元素并使用xslt截断它

时间:2014-10-17 02:14:18

标签: xslt

我正在尝试选择特定列中的所有表格单元格并将其截断为10个字符。

我真的无法理解这种语法。

 <xsl:template match="table[contains(@class, 'listing')]//tr/td[contains(@class, 'listing-body-start')]">
     <td>
     <xsl:value-of select="substring(./text(), 1, 10)"/>
     </td>
 </xsl:template> 

我可以用静态文本替换单元格的内容,或者使用select =&#34;。&#34;复制相同的文本,但是一旦我尝试这种子串方法,单元格就会消失。

1 个答案:

答案 0 :(得分:0)

尽量避免使用text()。这通常是不好的做法。

使用

<xsl:value-of select="substring(., 1, 10)"/>

这适用于td元素的字符串值,而不是其子文本节点。在许多内容模型中,td元素包含其他元素作为子元素是正常的,例如一个p或para元素,在这种情况下,查找子文本节点将失败。

这个答案是猜测。如果您没有告诉我们您输入的内容,我们别无选择,只能猜测。