需要从图像元素中删除像素值

时间:2017-05-03 05:19:08

标签: xml xslt xslt-2.0

我需要使用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使用。提前致谢

1 个答案:

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