2010-11-12 71 views
1

我有一個問題,我認爲應該很容易解決,但我似乎無法找到解決方案。我有一個我想要顯示的xml文件。爲此,我正在使用一個XSLT文件來做到這一點。現在,我只是將XSLT中嵌入的CSS替換爲CSS文件,這樣更好,因爲我可以將相同的CSS文件用於多個XSLT文件。在Internet Explorer中使用XSLT和CSS處理XML

這裏是我的XSLT:

<?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:tools="tools"> 
     <xsl:include href="AnotherXSLT.xsl" /> 
     <xsl:template match="/"> 
      <html> 
      <head> 
       <link href="styles.css" rel="stylesheet" type="text/css" MEDIA="screen" > 
      </head> 
      <body> 
       ... 
      </body> 
     </html> 
     </xsl:template> 
    </xsl:stylesheet> 

我的意思是,它不能是更加簡單的樣式表。但是,當它被處理時,Internet Explorer給了我這個錯誤:

End tag 'head' does not match the start tag 'link'. Error processing resource  
'file:///C:/Users/... 
     </head> 
--------^ 

我試圖關閉鏈接標籤是這樣的:

<link href="styles.css" rel="stylesheet" type="text/css" MEDIA="screen" /> 

然後,我只是得到:結束標記「HTML」不匹配開始標記'LINK'。

我也嘗試在模板內的<html>標記之前放一個DOCTYPE,我得到另一個錯誤,說我不能在proclog之後放置一個doctype。

任何想法?

按照要求,這是我的CSS:

{
FONT-FAMILY: 「宋體」,快遞,等寬;
font-size:0.8em;
}
table.mono
{
FONT-FAMILY: 「宋體」,快遞,等寬;
font-size:0.85em;
border-collapse:collapse;
}
table.solidblack,th.solidblack,td.solidblack
{
邊界:1px的實心黑色;
}
範圍
{
font-size:inherit;
display:inline-block;
padding-left:16px;
}
td.padding,th.padding
{
填充左:16px的;
padding-right:16px;
}
h3.exp
{
display:inline;
padding-left:6px;
}

+0

假設還不算太晚,您能否提供包含在您的主要xsl中的xslt文件「AnotherXSLT.xsl」? – Eldros 2011-02-02 09:31:29

回答

2

我們需要看到CSS包含的行。謝謝。

編輯:順便說一下,有或沒有你的XSLT,我可以假設你忘了上次結尾的斜線在:

<link rel="stylesheet" href="../css/style.css" type="text/css" /> 

最後,看「/」。

+0

是的,這個錯誤肯定指向一個未被封閉的鏈接標籤,所以,sebastien的答案几乎肯定是解決這個特定問題的方法,儘管可能有其他問題。 – 2010-11-12 03:49:25