2014-10-17 34 views
0

我想选择特定列中的所有表格单元格并将它们截断为10个字符。复制一个元素并用xslt截断它

我真的不能错这句话。

<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> 

我可以用静态文本替换单元格的内容,或通过选择=复制相同的文字“”,但只要我尝试这个方法子,细胞dissappear。

+0

请发布您的输入并完成预期输出的XSLT。 – 2014-10-17 06:23:34

+0

它们是否在XSLT输出中消失或只有在读取XSLT输出的程序解释时才消失? – 2014-10-17 07:05:35

回答

0

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

使用

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

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

这个答案是一个猜测。如果你没有告诉我们你的意见是什么,我们别无选择,只能猜测。