问题描述
我有一个具有值的 xsl 变量
I have a xsl variable that has value
<a href="https://www.google.com" target="_blank">说明技巧</a>
<p> <a href="https://www.google.com" target="_blank">Illustrating tips</a> </p>
如何插入一个 css 类来生成变量的值,如下所示.我也想删除段落标签.
How can I insert a css class to make the value of the variable, which will look like below. I also want to remove the paragraph tags.
<a href="https://www.google.com" target="_blank" class="titleClass">Illustrating tips</a>
推荐答案
假设你有
<xsl:variable name="frag">
<p> <a href="https://www.google.com" target="_blank">Illustrating tips</a> </p>
</xsl:variable>
然后使用 mode
来转换它,例如
then use a mode
to transform it, e.g.
<xsl:template match="p" mode="m1">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="a[@href]" mode="m1">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:attribute name="class">titleClass</xsl:attribute>
<xsl:apply-templates mode="m1"/>
</xsl:copy>
</xsl:template>
和
<xsl:variable name="transformed-frag">
<xsl:apply-templates select="$frag/node()" mode="m1"/>
</xsl:variable>
或者直接输出结果
<xsl:apply-templates select="$frag/node()" mode="m1"/>
如果 a
元素可以包含多个纯文本,您将需要为它们添加模板以在模式中复制它们,例如通用身份转换模板或该模式下的身份转换模板例如
If the a
element can contain more than plain text, you will need to add templates for them copying them in the mode, like a general identity transformation template or like an identity transformation template in that mode e.g.
<xsl:template match="@* | node()" mode="m1">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="#current"/>
</xsl:copy>
</xsl:template>
这篇关于将自定义 css 类插入到 xslt 变量中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!