尝试使用 XSLT 设置 HTML 颜色属性的样式

Trying to style HTML color attribute using XSLT

提问人:Russet_potato97 提问时间:3/4/2023 最后编辑:U. WindlRusset_potato97 更新时间:8/28/2023 访问量:111

问:

任何一个对XML和XSLT感到满意的人在这里: 在我的XMLl中,我尝试使用下面的XSLT为两个具有不同属性的不同“p”标签着色:

<xsl:template match="p">
 <xsl:choose>
  <xsl: when test="p/@color='red'"><span style="color:#00ff00"><xsl:value-of select="p"/></span></xsl:when>
  <xsl: when test="p/@color='green'"> <span style="color:#ff0000"> <xsl:value-of select="p"/></span></xsl:when>
  <xsl: otherwise><xsl:value-of select="p"/></xsl:otherwise>
 </xsl:choose>
</xsl:template>

XML 如下所示

<html>
<body>
<p color="red">Last paragraph incorrect</p>
<p>A Second paragraph</p>
<p color="green">The First paragraph</p>
<p color="green">Anthony Gonsalwes</p>
</body>
<body>
<l color="green"> kumarswamy</l>
</body>
</html>
XML xslt xhtml

评论

1赞 Heiko Theißen 3/4/2023
XSL 样式表中缺少结束元素。</span>
0赞 Russet_potato97 3/4/2023
爱你@HeikoThei ßen,在过去的 2-3 小时内我没能看到这个小东西,谢谢
0赞 Russet_potato97 3/4/2023
@HeikoThei ßen ,所以我正在尝试在XML中添加一个xslt文件,但是在浏览器上渲染时,它根本没有渲染任何东西,任何想法
0赞 Heiko Theißen 3/4/2023
请更新您的问题,并描述此后续问题。我不明白。
1赞 Heiko Theißen 3/6/2023
请不要在评论中编写代码,而是编辑您的问题。

答:

2赞 y.arazim 3/6/2023 #1

您的模板匹配 。这将为您在模板中使用的相对路径建立上下文。这意味着您的病情:p

<xsl:when test="p/@color='red'">

仅当 current 具有属性值为“red”的子元素时,才会为 true。当然,对于XML中的任何元素来说,情况并非如此。您应该改为测试:ppcolorp

<xsl:when test="@color='red'">

而不是:

<xsl:value-of select="p"/> 

你需要:

<xsl:value-of select="."/> 

评论

1赞 y.arazim 3/6/2023
您还可以在 中显示空格。这是一个语法错误。xsl: when