2011-10-04 51 views
0

可能會請別人告訴我爲什麼'disable-output-escaping'屬性在接下來的XSL模板中不起作用?輸入元素內的未轉義值

<INPUT type="text"> 
    <xsl:attribute name="value" > 
    <xsl:value-of select="$query" disable-output-escaping = "yes" /> 
    </xsl:attribute> 
</INPUT> 

我希望在'input'元素中看到未轉義的值。

在此先感謝

回答

1

爲什麼「禁用輸出轉義」屬性將在 沒有影響下面這段XSL模板?

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

/>

D-O-E只具有文本節點的效果 - 不是屬性

如果輸出方法是xml,那麼XSLT處理器必須輸出格式良好的XML文檔,然後必須在任何屬性值中轉義特殊字符。

您可以嘗試指定

<xsl:output method="html"/> 

但是,請記住,d-O-E是不是XSLT的所有和一些XSLT處理器不實現d-O-E強制性的特徵。因此,您可能需要手動輸入想要的值(也可以使用「文本」輸出方法)。

0

你可以改變輸出方法爲HTML,即:

<xsl:output method="html"/> 
0

我碰到過這種情況。通過創建一個文本節點,然後把你的HTML,直到你需要的屬性逃脫。該文件將正確地逃脫。

<xsl:text disable-output-escaping>&lt;input type="text" SIZE="62" name="text1" value="</xsl:text> 
<xsl:value-of select="$temp" disable-output-escaping="yes"/> 
<xsl:text disable-output-escaping>" /></xsl:text> 

Where I discovered the hack...