2017-06-06 74 views
0

以我XSLT(2.0 - 輸出方法爲HTML)我有此:輸出PHP處理指令

<img> 
    <xsl:attribute name="href"> 
     <xsl:text disable-output-escaping="yes">&lt;?php echo get_url(); ?&gt;</xsl:text> 
    </xsl:attribute> 
</img> 

我想要的輸出如下所示:

<img href="<?php echo get_url(); ?>"> 

輸出我得到如下:

<img href="<?php echo get_url(); ?&gt;"> 

嘗試了一堆不同的東西,讓「>」出來在輸出instea d的& gt; (CDATA標記部分等),但似乎沒有任何工作。奇怪的是,小於號的工作正常,但大於沒有。我正在使用Saxon-PE 9.5.1.7。

回答

0

使用字符映射表與一些字符,你並不需要在其他地方,這裏是改編自XSLT 2.0規範的例子(https://www.w3.org/TR/xslt20/#character-maps):

<img href="«?php echo get_url(); ?»"/> 

<xsl:output method="html" use-character-maps="m1"/> 

<xsl:character-map name="m1"> 
    <xsl:output-character character="«" string="&lt;"/> 
    <xsl:output-character character="»" string="&gt;"/> 
</xsl:character-map> 

在線例子是在http://xsltransform.net/93dEHFP

至於禁用輸出轉義,據我所知,它不能在屬性值中工作,得到的結果不是禁用輸出轉義的結果,而僅僅是使用xsl:output method="html"https://www.w3.org/TR/xslt-xquery-serialization/#HTML_ATTRIBS)強制'HTML輸出方法不能轉義屬性值中出現的'<「字符。'。

+0

真棒隊友 - 真的很感謝幫助。 K –

+0

它也可以工作!你是明星先生 - 布拉沃! –