我需要使用XSLT
从图像元素中删除像素值我的输入xml是:
<img src="https://google.com/Service/Get/Content/images-v1/Images/savings-277.250x250.jpg" />
XSL我用作:
<xsl:template match="img">
<xsl:element name="image">
<xsl:if test="@src">
<xsl:attribute name="href">
<xsl:value-of select="tokenize(@src, '/')[position() = last() - 2 or position() = last()]" separator="_"/>
</xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:template>
输出I&#39;我喜欢:
<image href="images-v1_savings-277.250x250.jpg"/>
但我想从输出中删除像素值(250x250):
<image href="images-v1_savings-277.jpg"/>
请为此建议一些可能的编码。我使用XSLT版本作为2.0,saxon作为saxon-PE 9.6.0.7使用。提前致谢
答案 0 :(得分:1)
请使用以下代码
<xsl:template match="img">
<xsl:element name="image">
<xsl:if test="@src">
<xsl:attribute name="href">
<xsl:variable name="ajeet">
<xsl:value-of select="tokenize(@src, '/')[position() = last() - 2 or position() = last()]" separator="_"/>
</xsl:variable>
<xsl:value-of select="replace($ajeet, '.([0-9]+)x([0-9]+)', '')"/>
</xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:template>