需要通过xslt从html标记获取最新样式 一个 :3pt蓝色
大家好 这是输入html的示例部分,我使用的是XSLT1.0。在这里,边框顶部颜色出现了两次。但是在xslt中,我必须采用最新的样式(需要通过xslt从html标记获取最新样式 一个 :3pt蓝色 ,xslt,Xslt,大家好 这是输入html的示例部分,我使用的是XSLT1.0。在这里,边框顶部颜色出现了两次。但是在xslt中,我必须采用最新的样式(边框顶部颜色:#5F497A;)。如何做?或任何其他解决方案(通过java进行预处理)。。 请帮助我..提前谢谢..您应该在后面使用子字符串,在前面使用子字符串,如下所示: <TD style="vertical-align:top;padding-left:5.4pt; padding-right:5.4pt;border-top-color:#00000
边框顶部颜色:#5F497A;
)。如何做?或任何其他解决方案(通过java进行预处理)。。
请帮助我..提前谢谢..您应该在后面使用子字符串,在前面使用子字符串,如下所示:
<TD style="vertical-align:top;padding-left:5.4pt; padding-right:5.4pt;border-top-color:#000000;border-top-color:#5F497A;width:159.60000000000002pt;">
<P style="margin-bottom:0pt;">
<SPAN style="font-weight:bold;">One</SPAN>
<SPAN style="font-weight:bold;">: 3pt blue</SPAN>
</P>
</TD>
这假定样式值后面会有一个分号。如果情况并非总是如此,则可以使用xslt contains函数进行检查
在使用xslt 1.0时,请尝试以下方法:
<xslt:value-of select="substring-before(substring-after(@style, 'border-top-color'), ';')"/>
如果您只想获取颜色代码,则可以按如下方式执行:
<xsl:variable name="attr" select="'border-top-color'"/>
<xsl:value-of select="concat(substring-before(@style, $attr),
$attr,
substring-after(substring-after(@style, $attr), $attr))"
/>
在语义上更正确的是,此样式表:
<xsl:value-of select="concat('#', substring-before(substring-after(substring-after(@style, '#'), '#'), ';'))"/>
XPath 2.0表达式:
#5F497A
我尝试了这个,它将产生第一个边框顶部颜色(000000)。但我需要第二个(#5F497A)…到底什么对你不起作用?你得到了什么?第一个示例从样式字符串中剪切出第一个
边框顶部颜色
,第二个-从样式属性中获取第二个颜色。那么请更好地描述你的问题。如果要输出边框顶部颜色:#etc
,则在第二种情况下,将concat
函数的第一个参数更改为边框顶部颜色:#
。
#5F497A
substring-after(
tokenize(/TD/@style,';')[
contains(.,'border-top-color')
][last()],
':'
)