2012-04-24 74 views
0

我還想生成使用PHP我的XSL視覺上的「文檔」。我想要做的是基本上轉換我的xsl而不用XML,以顯示XML字段將如何顯示在HTML中。生成XSL文件

澄清:

的xsl:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html"/> 
    <xsl:template match="/"> 
     <head> 
     <title>My sample</title> 
    </head> 
    <body> 
     My sample element: <xsl:value-of select="root/element1"/> 
    </body> 
    </xsl:template> 
</xsl:stylesheet> 

請求的輸出:

<html> 
<head> 
    <title>My sample</title> 
</head> 
<body> 
    My sample element: root/element1 
</body> 
</html> 

有誰知道如何做到這一點?

BR,Jake

+0

XSL是漢語語言的一個開始的家庭。你在談論XSLT嗎?也請重新寫下這個問題 - 其中之一就是不要欠缺你想要達到的目標。 – 2012-04-24 19:16:24

+1

請給出一些XSL的確切示例以及您想要從中創建的內容。 (通過「精確」我的意思是不是揮手「這樣的事情」,而是一個完整的描述。) – Tomalak 2012-04-24 19:16:27

+0

請編輯的問題,並解釋什麼意思,放在「文檔XSLT」 - 這是不明確所有。指定的所需輸出與XSLT文檔無關 - 您確定您知道您想要什麼嗎? – 2012-04-25 01:47:12

回答

1

XSLT是輸入驅動的。如果會爲不同的輸入產生不同的輸出。

在任何真實世界的場景,比你簡單的例子更復雜,看代碼沒有任何輸入運行通過它意味着你不能說什麼輸出會是什麼樣子。

爲您簡單的例子,你可以運行XSLT樣式表thorugh另一個XSLT樣式表。

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
> 
    <xsl:output method="text" /> 

    <xsl:template match="*"> 
    <xsl:value-of select="concat('&lt;', name())" /> 
    <xsl:apply-templates select="@*" /> 
    <xsl:value-of select="'&gt;'" /> 
    <xsl:apply-templates select="*" /> 
    <xsl:value-of select="concat('&lt;/', name(), '&gt;')" /> 
    </xsl:template> 

    <xsl:template match="@*"> 
    <xsl:value-of select="concat(' ', name(), '=&quot;', ., '&quot;')" /> 
    </xsl:template> 

    <xsl:template match="xsl:*"> 
    <xsl:apply-templates select="*" /> 
    </xsl:template> 

    <xsl:template match="xsl:value-of"> 
    <xsl:value-of select="concat('{{value-of: ', @select, '}}')" /> 
    </xsl:template> 

    <!-- add appropriate templates for the other XSLT elements --> 
</xsl:stylesheet> 

與樣品,這將產生串

<head><title></title></head><body>{{value-of: root/element1}}</body> 

然而,部分是比較麻煩的問題「爲其他XSLT元素添加相應的模板」。您的輸出將按照輸入的順序(如我所說,XSLT是輸入驅動的)。你的XSLT程序將最有可能來奠定的出路,因爲它會產生相同的輸出,所以產生明智的文檔從它可能會覺得很有點困難比你想象的。

+0

謝謝。這就是我所尋找的。我一直在試圖添加一些額外的功能,我需要,但沒有成功。你可以請求告訴我如何顯示if語句和for-each循環嗎?此外,我不能弄清楚如何在上面轉換後保留html中的文本。我編輯了上面的例子來解釋我在做什麼 – user439781 2012-04-30 10:18:55