我有一堆用於生成HTML頁面的XML文件。這些頁面最終通過一些<%= %>
標籤(用手)標記並製作成Ruby .erb模板。如何使用XSLT創建PHP/JSP/ERB標籤?
有沒有辦法在XSL轉換過程中直接生成特殊標籤<?php ?>
或<%= %>
?
我使用<![CDATA[ ... ]]>
塊試過,但隨後的輸出與<
和>
代替<
和>
生成。
我有一堆用於生成HTML頁面的XML文件。這些頁面最終通過一些<%= %>
標籤(用手)標記並製作成Ruby .erb模板。如何使用XSLT創建PHP/JSP/ERB標籤?
有沒有辦法在XSL轉換過程中直接生成特殊標籤<?php ?>
或<%= %>
?
我使用<![CDATA[ ... ]]>
塊試過,但隨後的輸出與<
和>
代替<
和>
生成。
Is there a way to generate the special tags <?php ?> or <%= %> directly during the XSL transform?
<?php ?>
不是一個「特殊標記」 - 這是在XPath數據模型標準的節點類型 - 一個processing instruction。
還有一個XSLT指令創建PI:
最後,你可以創建一個像文本 「<%=%>」,如果你使用文本輸出方法:
<xsl:output method="text"/>
但是在文字輸出法丟失任何節點 - 您應該輸入每個輸出字符作爲文本。
因此,它是更方便一點位使用默認XML輸出方法和(非強制性!)屬性disable-output-escaping="yes"
,如果這是你的XSLT處理器支持。
下面是一個例子:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:processing-instruction name="php"/>
<xsl:text disable-output-escaping="yes">
<% Hello World! %>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
應用這種變換以任何XML文檔(未使用)產生:
<?php?>
<% Hello World! %>
+1非常完整的答案! – 2010-10-27 15:06:08
非常好,謝謝,這是訣竅!我正在使用Javascript來轉換'ActiveXObject(「Microsoft.XMLDOM」)''和ActiveXObject(「Scripting.FileSystemObject」),它似乎支持'disable-output-escaping =「yes」'指令。 :) – Dave 2010-10-27 17:59:33
@Dave:不客氣。 :) – 2010-10-27 18:07:44
好問題,1。請參閱我的答案以獲得解釋,以及如何完成此操作的完整示例。 – 2010-10-27 13:42:13