umlaut(变异)的XSLT奇怪行为

时间:2011-12-28 08:03:57

标签: html xml xslt transformation

当我尝试使用XSLT解析它时,当我在xml中的节点中发生突变时,我有一个非常奇怪的行为。

因此我们现在假设CustomerName具有值'MÖP'。

在这种情况下,生成的HTML“a”标记的href为“M%C3%B6P”

<a href="{CustomerName}">
    <xsl:value-of disable-output-escaping="yes" select="CustomerName"/> 
</a>

在这种情况下,生成的HTML'div'标记将具有id'MÖP'

<div style="display:none">
    <xsl:attribute name="id"><xsl:value-of select="CustomerName"/></xsl:attribute>
</div>

似乎a标签中的属性href与它有关。

我的问题是,为什么会这样? 我在两种情况下都可以做到这一点,我得到了相同的输出?

格尔茨

1 个答案:

答案 0 :(得分:1)

XSLT处理器通过转义HTML链接元素的href属性中的URL值来帮助您。这是设计使然,请参阅http://www.w3.org/TR/xslt-xquery-serialization/#HTML_ESCAPE-URI-ATTRIBUTES。如果您真的不想这样,并且使用XSLT 2.0处理器,则可以在样式表中使用<xsl:ouput method="html" escape-uri-attributes="no"/>