我有一个具有以下结构的 xml 文件
<project>
<dependency id="abc" version="1.2.3.4"/>
</project>
我需要阅读这个 xml 并使用 id 和 version 的值更新另一个 xml。早些时候,我使用如下的 xsl 执行此操作,效果很好:
<xsl:attribute name="id">
<xsl:value-of select="@id"/>
</xsl:attribute>
<xsl:attribute name="version">
<xsl:value-of select="@version"/>
</xsl:attribute>
现在我需要将version的属性值设置为[1.2,1.3),我该怎么做呢?我在下面尝试了类似的方法,但我认为我没有得到任何地方。
<xsl:variable name="MinVersion"/>
<xsl:variable name="MaxVersion"/>
<xsl:for-each select="tokenize(@version,'.')">
<xsl:if test="(position( )) = 2">
<xsl:value-of select="concat($MinVersion,.)"/>
</xsl:if>
<xsl:otherwise>
<xsl:value-of select="concat($MinVersion,.,'.')"/>
</xsl:otherwise>
<xsl:if test="(position( )) = 2">
<xsl:value-of select="concat($MaxVersion,number(.)+1)"/>
</xsl:if>
<xsl:otherwise>
<xsl:value-of select="concat($MaxVersion,.,'.')"/>
</xsl:otherwise>
</xsl:for-each>
我怎样才能做到这一点?
更新:我尝试在 Visual Studio 中调试它并收到错误消息,指出 tokenize 不是一个可识别的函数。经过一番搜索发现.NET 框架只支持XSLT 1.0 处理器。任何 1.0 的解决方案都会有所帮助。