我希望文本的子字符串显示0-500个字符,然后显示图像,然后再次显示上面文本的剩余部分。 我使用下面的代码获得0-500个字符,直到第一个句号:
<xsl:value-of select="substring(metadata/item/body, 1, 500 + string-length(substring-before(substring(metadata/item/body, 501),'.')))" disable-output-escaping="yes"/>.
然后我正在显示图像。之后我使用此代码显示文本的剩余部分:
<xsl:value-of select="substring(metadata/item/body, 500)" disable-output-escaping="yes"/>
我现在得到的输出:
partnership with the private sector, especially the pharmaceutical sector.
Image*****
cal sector. He added that the future vision for the health....till end.
预期产出:
partnership with the private sector, especially the pharmaceutical sector.
Image*****
He added that the future vision for the health....till end.
答案 0 :(得分:1)
在图像之前的部分代码中,您正在寻找合适的中断位置(可能不在角色500处。然后在第二段代码中,而不是重用相同的方法来查找位置开始你只是从角色500开始。如果您从前映像部分获取解决方案并将其用于后期图像部分,您将获得您正在寻找的输出。
答案 1 :(得分:0)
怎么样:
<xsl:variable name="stop" select="500 + string-length(substring-before(substring(input, 500),'.'))" />
<xsl:value-of select="substring(input, 1, $stop)"/>
<!-- image here -->
<xsl:value-of select="substring(input, $stop + 2 )"/>
注意:+ 2
基于停止后有空格或换行符的假设。