我正在尝试选择特定列中的所有表格单元格并将其截断为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;复制相同的文本,但是一旦我尝试这种子串方法,单元格就会消失。
答案 0 :(得分:0)
尽量避免使用text()
。这通常是不好的做法。
使用
<xsl:value-of select="substring(., 1, 10)"/>
这适用于td元素的字符串值,而不是其子文本节点。在许多内容模型中,td元素包含其他元素作为子元素是正常的,例如一个p或para元素,在这种情况下,查找子文本节点将失败。
这个答案是猜测。如果您没有告诉我们您输入的内容,我们别无选择,只能猜测。