2012-12-12 47 views
1

我使用Umbraco 4.9.0構建了一個網站,並且本地都很好。我發佈了它並從IIS運行它。但它現在可以工作,除了在着陸頁上引用的XSLT文件(Breadcrumb),它說「錯誤解析XSLT文件{xslt文件名}」。Umbraco「解析XSLT文件時出錯」

錯誤是: '錯誤解析XSLT文件:\ XSLT \ SiteBreadcrumb.xslt'

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ 

    <!ENTITY nbsp "&#x00A0;"> ]> <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt" 
    xmlns:umbraco.library="urn:umbraco.library" 
    xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" 
    xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" 
    xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" 
    xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" 
    xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" 
    xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" 
    xmlns:tagsLib="urn:tagsLib" xmlns:BlogLibrary="urn:BlogLibrary" 
    xmlns:UCommentLibrary="urn:UCommentLibrary" 
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon 
    Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions 
    Exslt.ExsltStrings Exslt.ExsltSets tagsLib BlogLibrary UCommentLibrary 
    "> <xsl:output method="xml" omit-xml-declaration="yes"/> 
    <xsl:param name="currentPage" select="/.."/> <xsl:variable name="minLevel" 
    select="1"/> <xsl:template match="/"> 
     <xsl:if test="$currentPage/@level &gt; $minLevel"> 
     <tr> 
      <xsl:for-each select="$currentPage/ancestor::* [@level &gt; $minLevel and string 

(umbracoNaviHide) != '1']"> 
      <td style=" height: 24px;"> 
       <a href="{umbraco.library:NiceUrl(@id)}?nodeId={@id}" style="color:black;"> 
       <xsl:value-of select="@nodeName"/> 
       </a> 
       &gt; 
      </td> 
      </xsl:for-each> 
     </tr> 
     </xsl:if> </xsl:template> </xsl:stylesheet> 

沒有任何人有任何想法,爲什麼所有的XSLT文件將無法解析?

+0

請注意,要用書寫簡潔的代碼 - 目前閱讀起來很難,甚至更難理解。 –

回答

1

該錯誤是該指示

<xsl:if test="$currentPage/@level &gt; $minLevel"> 

撒克遜6.5.5說:

在XSL錯誤:如果對文件的第21行:/(無標題):該值是不是一個 節點集

的一種可能的解決方案是更換

<xsl:param name="currentPage"/> 

<xsl:param name="currentPage" select="/.."/> 

以至於現在XSLT處理器知道$currentPage包含的節點。

+0

我做到了。但它沒有工作:( – Jahan

+0

@Jahan,如果你需要幫助,你需要更具體一些,「它沒有工作」可能意味着什麼,當我做替換時,我不再收到編譯時錯誤。邏輯是「正確的」是一個完全不同的問題 –

+0

這意味着,根據您的解決方案更改代碼和更改代碼之間沒有任何區別!我用您的代碼替換我的代碼。 – Jahan