2010-12-02 27 views
0

我有一個包含xhtml片段的xsl文件。我需要刪除它們,以便它變成瀏覽器兼容。我嘗試過,但後來停止工作。這裏是原來的xsl:如何編輯此xsl文件,以便它適用於所有瀏覽器

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:html="http://www.w3.org/1999/xhtml"> 
    <xsl:output omit-xml-declaration="yes" /> 
    <xsl:template match="messages"> 
    <html:ul> 
     <xsl:apply-templates select="message" /> 
    </html:ul> 
    </xsl:template> 

    <xsl:template match="message[message]"> 
    <html:li>message <xsl:value-of select="@emp_msg" /></html:li> 
    <html:ul> 
     <xsl:apply-templates select="message" /> 
    </html:ul> 
    </xsl:template> 

    <xsl:template match="message"> 
    <html:li>message <xsl:value-of select="@emp_msg" /></html:li> 
    <xsl:apply-templates select="message" /> 
    </xsl:template> 
</xsl:stylesheet> 

我試圖刪除XHTML片段這種方式,但它停止工作&打印,「沒有風格信息」。我做了什麼錯:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" /> 
    <xsl:template match="messages"> 
    <ul> 
     <xsl:apply-templates select="message" /> 
    </ul> 
    </xsl:template> 
    <xsl:template match="message[message]"> 
    <li>message <xsl:value-of select="@emp_msg" /></li> 
    <ul> 
     <xsl:apply-templates select="message" /> 
    </ul> 
    </xsl:template> 

    <xsl:template match="message"> 
    <li>message <xsl:value-of select="@emp_msg" /></li> 
    <xsl:apply-templates select="message" /> 
    </xsl:template> 
</xsl:stylesheet> 
+0

這兩個我們應該考慮重複嗎? http://stackoverflow.com/questions/4335513/transforming-xml-data-to-html-using-xsl-and-php-only-printing-xml-tags-without-a – 2010-12-02 23:09:54

回答

0

我看你有:

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

嘗試固定的語法!

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
+0

這是一個副本錯誤,它的罰款原始的,它顯示'沒有樣式信息'&打印xml – XCeptable 2010-12-02 21:42:36

0

如果您發佈樣本是正確的,你離開了你的<xsl:stylesheet>元素的開始標記的>。它需要說

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

請注意,堆棧溢出的語法突出顯示有助於使這更明顯。

更新:好的...鑑於此,請按照吉姆·加里森的說法,如果你還沒有,但如果原始工作正常,你必須已經有。

您也可以嘗試確保XML源文件的內容類型是XML,如果它是通過HTTP檢索的。並嘗試使用

<xsl:output method="html" /> 

(可能與omit-xml-declaration="yes")。

+0

這是一個副本錯誤,它在原來的罰款,它顯示'沒有樣式信息'&打印xml – XCeptable 2010-12-02 21:42:18

0

要在瀏覽器中工作,你必須包括在XML文檔的開始樣式表的鏈接處理指令,如:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet type="text/xsl" href="myStyleSheet.xsl"?> 
<rootOfXmlDocument> 
    .... 

href=屬性必須指向樣式表以這樣的方式,瀏覽器可以解決它(即它需要是一個可以通過瀏覽器獲取的URL)。

相關問題