输入html样式::
border: #5f497a 3pt solid;
or
border: 3pt #5f497a solid;
or
border: solid #5f497a 3pt;
大家好, 这些都是我可能的html输入样式,我必须使用xslt 1.0来获取边框宽度(3)。请帮帮我..谢谢你..
注意:在pt之前我总是有一位数
答案 0 :(得分:1)
此转化:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="table">
<xsl:apply-templates select="@style"/>
</xsl:template>
<xsl:template match="@style">
<xsl:if test="string-length() >0">
<xsl:variable name="vValues"
select="substring-after(.,':')"/>
<xsl:variable name="vNormalized" select=
"translate(normalize-space(concat(';',$vValues)),
' ',
';')
"/>
<xsl:variable name="vEndingWidth" select=
"substring-before($vNormalized,'pt;')"/>
<xsl:variable name="vLength"
select="string-length($vEndingWidth)"/>
<xsl:value-of select="substring($vEndingWidth, $vLength)"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
应用于以下XML文档时:
<t>
<table style="border: #5f497a 3pt solid;"/>
<table style="border: 3pt #5f497a solid;"/>
<table style="border: solid #5f497a 3pt;"/>
</t>
会产生想要的正确结果:
3
3
3