3

我使用 Umbraco 4.9.0 建立了一个网站,并且在本地一切正常。我发布了它并从 IIS 运行它。但它现在可以工作了,除了登录页面上引用的 XSLT 文件(Breadcrumb)它说“错误解析 XSLT 文件 {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 文件都不会解析吗?

4

1 回答 1

2

错误在这条指令上

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

撒克逊 6.5.5 说:

xsl 错误:如果在文件的第 21 行:/(无标题):该值不是节点集

一种可能的解决方案是替换

<xsl:param name="currentPage"/>

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

这样现在 XSLT 处理器就知道它$currentPage包含一个节点。

于 2012-12-12T13:10:59.303 回答