禁用输出转义不适用于 xslt 中的属性

2023-12-19

我有以下 xml 节点:

<name>P &amp; P</name>

并遵循 XSL

<a href="example.htm" >

    <xsl:attribute name="title">
       <xsl:value-of select="name" disable-output-escaping="yes"></xsl:value-of>
    </xsl:attribute>    


     <xsl:value-of select="name" disable-output-escaping="yes"></xsl:value-of>
</a>

编译成这个 HTML

<a href="example.com" title="P &amp;amp; P">
  P &amp; P
</a>

因此,非转义适用于该值(之间的文本<A></A>) 但不适用于属性。

我在这里错过了什么吗?

Thanks!


来自OP的评论:

我需要在 HTML 标签的标题属性中使用此 xml (P & P)。 A 更好的解决方案是最受欢迎的!

您需要生成的内容无需 D-O-E 即可完美完成.

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/*">
     <a href="example.htm" title="{.}">
       <xsl:value-of select="."/>
     </a>
 </xsl:template>
</xsl:stylesheet>

当应用于以下 XML 文档时:

<t>P &amp; P</t>

产生了想要的正确结果:

<a href="example.htm" title="P &amp; P">P &amp; P</a>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用输出转义不适用于 xslt 中的属性 的相关文章

随机推荐