我在使用以下旧代码片段时遇到问题,这些代码允许自定义指定的超链接颜色。将应用程序从当前的32位升级到64位时,64位版本在执行验证规则方面更加严格,xsl不希望以相同的方式呈现。
我已尝试清理代码,这使我可以将问题缩小到使用标记。我假设是由于更严格的验证,我只是不确定如何重做它,所以我们保留升级后的自定义彩色超链接。
适用于旧版32位解析器的原始代码
A:visited{ color: Blue; }
A#actionHyperlink{
<xsl:text>color: #</xsl:text>
<xsl:value-of select="//mytest/systemConfig/hyperlinkActionColour"/>
<xsl:text>;</xsl:text> padding-right: 5px;
}
A#dataHyperlinkNoPadding{
<xsl:text>color: #</xsl:text>
<xsl:value-of select="//mytest/systemConfig/hyperlinkDataColour"/>
<xsl:text>;</xsl:text>}
已检查,以下内容适用于64位版本的解析器
a:visited{ color: Blue; }
a#actionHyperlink{ color: Green; padding-right: 5px; }
a#dataHyperlinkNoPadding{ color: Orange; }
但只要包含标签,就像
一样
a:visited{ color: Blue; }
a#actionHyperlink{
<xsl:text>color: Green;</xsl:text>
padding-right: 5px; }
a#dataHyperlinkNoPadding{ color: Orange; }
XSL似乎采用了第一个遇到的标记,在这种情况下是actionHyperlink,将它移到代码的后面,并将所有其他标记拉入其中。因为我试图使用value-of标签来添加自定义颜色,所以我最终得到了一个包含所有value-of标签的超链接。所以XSL已经失去了形状,看起来像下面的东西(没有一个超链接最终得到正确的自定义颜色)
a:visited{ color: Blue; }
a#dataHyperlinkNoPadding{ }
a#navigationHyperlink{ }
a#otherHyperlinkWithPadding{ padding-right: 5px; }
a#actionHyperlink{
<xsl:value-of select="//mytest/systemConfig/hyperlinkActionColour"/>
<xsl:value-of select="//mytest/systemConfig/dataHyperlinkNoPadding"/>
<xsl:value-of select="//mytest/systemConfig/navigationHyperlink"/>
<xsl:value-of select="//mytest/systemConfig/otherHyperlinkWithPadding"/>
}
那么我是否仍然可以使用标签,如果没有,那么如何解决这个问题呢?