我想知道如果字符数超过200,XSLT是否可以选择删除元素的内容。下面我将使用所有内容元素。
警告:XSLTProcessor :: transformToXml()[xsltprocessor.transformtoxml]:运行时错误:文件stylesheet.xslt第42行元素在第20行的index.php中应用模板
警告:XSLTProcessor :: transformToXml()[xsltprocessor.transformtoxml]:'select'表达式未计算到节点集。在第20行的index.php中
<xsl:template match="a:content | description">
<c>
<xsl:apply-templates select="substring('node() | @*', 1, 200)" />
</c>
</xsl:template>
答案 0 :(得分:1)
<xsl:apply-templates select="substring('node() | @*', 1, 200)" />
上面select
属性中指定的Xpath表达式属于xs:string
。
但是,在XSLT 1.0和XSLT 2.0中,模板只能应用于节点 - 而不能应用于字符串。这就是您收到报告的错误消息的原因。
在我看来,你最想要的是:
<xsl:value-of select="substring(., 1, 200)" />