Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Bobby Perez 13 posts 33 karma points
    Mar 21, 2012 @ 03:47
    Bobby Perez
    0

    Error loading XSLT

    Hi,

    Still learning stuff from Umbraco.

    I'm getting this error on my xslt email template macro.

    Error loading XSLT Newsletters/WeeklySpecials2.xslt
    XSLT compile error.
      at System.Xml.Xsl.Xslt.XsltLoader.LoadStylesheet(XmlReader reader, Boolean include)
      at System.Xml.Xsl.Xslt.XsltLoader.LoadStylesheet(Uri uri, Boolean include)
      at System.Xml.Xsl.Xslt.XsltLoader.LoadStylesheet(XmlReader reader, Boolean include)
      at System.Xml.Xsl.Xslt.XsltLoader.Load(Compiler compiler, Object stylesheet, XmlResolver xmlResolver)
      at System.Xml.Xsl.Xslt.Compiler.Compile(Object stylesheet, XmlResolver xmlResolver, QilExpression& qil)
      at System.Xml.Xsl.XslCompiledTransform.LoadInternal(Object stylesheet, XsltSettings settings, XmlResolver stylesheetResolver)
      at umbraco.macro.CreateXsltTransform(XmlTextReader xslReader, Boolean debugMode)
      at umbraco.macro.getXslt(String XsltFile)
      at umbraco.macro.loadMacroXSLT(macro macro, MacroModel model, Hashtable pageElements)

    Can someone explain what's causing this issue?

    Thanks

  • Rob Watkins 369 posts 701 karma points
    Mar 21, 2012 @ 12:03
    Rob Watkins
    0

    Not without seeing the source, no :o)

  • Bobby Perez 13 posts 33 karma points
    Mar 26, 2012 @ 00:37
    Bobby Perez
    0

    Hi,

    This is the code that I got at the moment

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xsl:stylesheet [
      <!ENTITY nbsp "&#x00A0;">
      <!ENTITY copy "&#169;">
      <!ENTITY ndash "&#8211;">
    ]>
    <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:Foodstuffs.library="urn:Foodstuffs.library" xmlns:tagsLib="urn:tagsLib" xmlns:BlogLibrary="urn:BlogLibrary" xmlns:ucomponents.cms="urn:ucomponents.cms" xmlns:ucomponents.dates="urn:ucomponents.dates" xmlns:ucomponents.io="urn:ucomponents.io" xmlns:ucomponents.media="urn:ucomponents.media" xmlns:ucomponents.members="urn:ucomponents.members" xmlns:ucomponents.nodes="urn:ucomponents.nodes" xmlns:ucomponents.request="urn:ucomponents.request" xmlns:ucomponents.search="urn:ucomponents.search" xmlns:ucomponents.strings="urn:ucomponents.strings" xmlns:ucomponents.urls="urn:ucomponents.urls" xmlns:ucomponents.xml="urn:ucomponents.xml" xmlns:umbraco.contour="urn:umbraco.contour" xmlns:PS.XSLTsearch="urn:PS.XSLTsearch" xmlns:refactoredExtensions="urn:refactoredExtensions"
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets Foodstuffs.library tagsLib BlogLibrary ucomponents.cms ucomponents.dates ucomponents.io ucomponents.media ucomponents.members ucomponents.nodes ucomponents.request ucomponents.search ucomponents.strings ucomponents.urls ucomponents.xml umbraco.contour PS.XSLTsearch refactoredExtensions ">
     
      <xsl:import href="Common.xslt"/>
      <xsl:output method="xml" omit-xml-declaration="yes"/>
      
      <xsl:param name="currentPage"/>
     
      <xsl:param name="regionRoot" select="$currentPage/ancestor-or-self::root/regionsAndStores"/>
      <xsl:param name="homePage" select="$currentPage/ancestor-or-self::root/Homepage"/>
      <xsl:param name="spacer" select="Foodstuffs.library:GetAbsoluteUrl('/images/emails/spacer.gif')" />
      <xsl:param name="allRegions" select="$currentPage/ancestor-or-self::root/regionsAndStores/descendant-or-self::Region" />
      <xsl:param name="allStores" select="$currentPage/ancestor-or-self::root/regionsAndStores/descendant-or-self::Store" />
      <xsl:param name ="promoLanding" select="$currentPage/ancestor-or-self::root/Homepage/PromotionsLandingPage" />
      <xsl:param name="currentDate" select="umbraco.library:CurrentDate()"/>
     
      <xsl:template match="/">
        <!-- Wrapper -->
        <table border="0" cellspacing="0" cellpadding="0" style="width: 100%; height: 100%; background-color:#fffef0;">
          <tr>
            <td align="center" valign="top">
              
              <p style="font-size: 9px; line-height: 12px; font-family: Arial, sans-serif; color:#666666;">
                <!-- *|IFNOT:ARCHIVE_PAGE|* -->Hi *|FNAME|* this email was sent to *|EMAIL|*. Having trouble viewing it? <a href="*|ARCHIVE|*" class="adminText">View the online version in your web browser</a>.<!-- *|END:IF|* -->
              </p>
     
              <!-- Standard Header -->
              <xsl:call-template name="standardHeader" />
              
     
              <!-- Airmal Stripes With Envelope -->
              <xsl:call-template name="airmailStripesWithEnvelope"/>
           
     
              <!-- Introduction and feature image -->
              <xsl:call-template name="standardIntroduction" />
     
     
              <!-- Weekly Specials -->
              <xsl:for-each select="$allRegions">
     
                <xsl:variable name="allRegionsPromos" select=".//ProductPromotion[count(.)&gt;0 and umbraco.library:DateGreaterThanOrEqual(umbraco.library:DateAdd(validEndDate, 'd', 1), $currentDate) and umbraco.library:DateGreaterThanOrEqual($currentDate, validStartDate)]"/>
     
                <!-- main condition - must have 2+ promos! -->
                <xsl:if test="count($allRegionsPromos) &gt;= 3">
                  <!--mailchimp store marker start -->
                  <xsl:value-of select="concat('*|IF:REGIONID=',@id,'|*')" />
                  <table border="0" cellpadding="0" cellspacing="0" width="520" style="background-color:#FFFFFF;">
                    <tr>
                      <td colspan="5" height="4" style="background-color:#eadfb0;">
                        <img style="display:block;" height="4" alt="">
                          <xsl:attribute name="src">
                            <xsl:value-of select="$spacer"/>
                          </xsl:attribute>
                        </img>
                      </td>
                    </tr>
                    <tr>
                      <td width="4" style="background-color:#eadfb0;">
                        <img style="display:block;" height="4" alt="">
                          <xsl:attribute name="src">
                            <xsl:value-of select="$spacer"/>
                          </xsl:attribute>
                        </img>
                      </td>
                      <td width="10">
                        <img style="display:block;" height="4" alt="">
                          <xsl:attribute name="src">
                            <xsl:value-of select="$spacer"/>
                          </xsl:attribute>
                        </img>
                      </td>
                      <td style="font-size: 14px; text-transform: uppercase; color: #5c6c0d; margin: 0;padding:0;padding-top:10px;padding-bottom:10px;">
                        <xsl:text>Promotions And Deals At Your Local Four Square</xsl:text>
                      </td>
                      <td width="10">
                        <img style="display:block;" height="4" alt="">
                          <xsl:attribute name="src">
                            <xsl:value-of select="$spacer"/>
                          </xsl:attribute>
                        </img>
                      </td>
                      <td width="4" style="background-color:#eadfb0;">
                        <img style="display:block;" height="4" alt="">
                          <xsl:attribute name="src">
                            <xsl:value-of select="$spacer"/>
                          </xsl:attribute>
                        </img>
                      </td>
                    </tr>
                  </table>
     
     
                  <xsl:for-each select="$allRegionsPromos">
                    <xsl:sort select="number(priority)" order="ascending" data-type="number"/>
                    <xsl:if test="position() &lt;= 6">
                      <!-- Insert opening table tag for first product or after every 3 products -->
                      <xsl:if test="position() = 1 or position() mod 3 = 1">
                        <xsl:text disable-output-escaping="yes"><![CDATA[
                                            <table cellpadding="0" cellspacing="0" width="520" style="background-color:#FFFFFF;">
                                            <tr>
                                                <td width="4" style="background-color:#eadfb0;">
                                                    <img style="display:block;" src="]]></xsl:text>
                        <xsl:value-of select="$spacer"/>
                        <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" alt="" />
                                                </td>
                                                <td width="15">
                                                    <img style="display:block;" src="]]></xsl:text>
                        <xsl:value-of select="$spacer"/>
                        <xsl:text disable-output-escaping="yes"><![CDATA[" width="15" alt="" />
                                                </td>
                                                ]]></xsl:text>
                      </xsl:if>
     
                      <td width="146" valign="top" style="text-align:left;">
     
                        <xsl:value-of select="Foodstuffs.library:GetSpecialsImage(./@id,1,1)" disable-output-escaping="yes"/>
     
                        <p style="color: #595959; font-size: 14px; margin-top: 10px; margin-bottom: 10px;">
                          <xsl:value-of select="./@nodeName"/>
                        </p>
                        <p>
                          <span style="color:#333333;display: block; font-weight: bold; font-size: 43px; float: left; margin: 0px;padding: 0px; line-height: 38px;">
                            <xsl:value-of select="Foodstuffs.library:GetPriceDollars(./price)"/>
                          </span>
                          <span style="color:#333333;display: block; font-weight: bold;font-size: 18px; float: left;">
                            <xsl:value-of select="Foodstuffs.library:GetPriceCents(./price)"/>
                          </span>
                        </p>
                        <p style="clear:both;color:#333333;font-size: 10px;height: 12px;margin:0;margin-bottom:5px;">
                          <xsl:value-of select="unit"/>
                        </p>
                        <p style="clear:both;color:#333333;font-size: 10px;height: 12px;margin:0;margin-bottom:5px;">
                          <xsl:value-of select="concat('Expires: ',umbraco.library:FormatDateTime(validEndDate, 'dd MMMM yyy'))"/>
                        </p>
                      </td>
     
                      <xsl:choose>
                        <xsl:when test="position() = last() or position() mod 3 = 0">
                          <xsl:text disable-output-escaping="yes"><![CDATA[
                                            <td width="15">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="15" alt="" />
                                            </td>
                                            <td width="4" style="background-color:#eadfb0;">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" alt="" />
                                            </td>
                                            </tr>
                                            </table>
     
                                            <table border="0" cellpadding="0" cellspacing="0" width="520" style="background-color:#FFFFFF;">                                      
    <tr>
                                                <td width="4" style="background-color:#eadfb0;">
                                                    <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" height="10" alt="" />
                                                </td>
                                                <td colspan="3" width="512">
                                                    <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="512" height="10" alt="" />
                                                </td>
                                        <td width="4" style="background-color:#eadfb0;">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" height="10" alt="" />
                                        </td>
                                    </tr>                                        
    <tr>
                                                <td width="4" style="background-color:#eadfb0;">
                                                    <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" height="1" alt="" />
                                                </td>
                                                <td width="15">
                                                    <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="15" height="1" alt="" />
                                                </td>
                                  
                                        <td width="482" style="background-color:#595235;">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="482" height="1" alt="" />
                                        </td>
                                        <td width="15">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="15" height="1" alt="" />
                                        </td>
                                        <td width="4" style="background-color:#eadfb0;">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" height="1" alt="" />
                                        </td>
                                    </tr>                                     
    <tr>
                                                <td width="4" style="background-color:#eadfb0;">
                                                    <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" height="10" alt="" />
                                                </td>
                                                <td colspan="3">
                                                    <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" height="10" alt="" />
                                                </td>
                                        <td width="4" style="background-color:#eadfb0;">
                                            <img style="display:block;" src="]]></xsl:text>
                          <xsl:value-of select="$spacer"/>
                          <xsl:text disable-output-escaping="yes"><![CDATA[" width="4" height="10" alt="" />
                                        </td>
                                    </tr>   
                                </table>
                                            ]]></xsl:text>
                        </xsl:when>
                        <xsl:otherwise>
                          <td width="10">
                            <img style="display:block;" height="4" alt="">
                              <xsl:attribute name="src">
                                <xsl:value-of select="$spacer"/>
                              </xsl:attribute>
                            </img>
                          </td>
                          <td width="1" style="background-color:#595235;">
                            <img style="display:block;width:1px;" alt="">
                              <xsl:attribute name="src">
                                <xsl:value-of select="$spacer"/>
                              </xsl:attribute>
                            </img>
                          </td>
                          <td width="10">
                            <img style="display:block;" height="4" alt="">
                              <xsl:attribute name="src">
                                <xsl:value-of select="$spacer"/>
                              </xsl:attribute>
                            </img>
                          </td>
                        </xsl:otherwise>
                      </xsl:choose>
                    </xsl:if>
                  </xsl:for-each>
                  <xsl:text>*|END:IF|*</xsl:text>
                  <xsl:for-each select=".//Store">
                    <xsl:value-of select="concat('*|IF:STOREID=',@id,'|*')" />
                    <table border="0" cellpadding="0" cellspacing="0" width="520" style="background-color:#FFFFFF;margin-bottom:20px;">
                      <tr>
                        <td width="4" style="background-color:#eadfb0;">
                          <img style="display:block;" height="4" alt="">
                            <xsl:attribute name="src">
                              <xsl:value-of select="$spacer"/>
                            </xsl:attribute>
                          </img>
                        </td>
                        <td width="15">
                          <img style="display:block;" height="4" alt="">
                            <xsl:attribute name="src">
                              <xsl:value-of select="$spacer"/>
                            </xsl:attribute>
                          </img>
                        </td>
     
                        <td style="text-align:center;">
                          <a href="{Foodstuffs.library:GetAbsoluteUrl(umbraco.library:NiceUrl($promoLanding/@id))}?store={@nodeName}-{@id}">
                            <img alt="More promotions and deals" src="{Foodstuffs.library:GetAbsoluteUrl('/images/emails/btnStoreSpecials.gif')}" style="display:block;margin-bottom:10px;" border="0"/>
                          </a>
                        </td>
                        <td width="15">
                          <img style="display:block;" height="4" alt="">
                            <xsl:attribute name="src">
                              <xsl:value-of select="$spacer"/>
                            </xsl:attribute>
                          </img>
                        </td>
                        <td width="4" style="background-color:#eadfb0;">
                          <img style="display:block;" height="4" alt="">
                            <xsl:attribute name="src">
                              <xsl:value-of select="$spacer"/>
                            </xsl:attribute>
                          </img>
                        </td>
                      </tr>
                      <tr>
                        <td colspan="5" height="4" style="background-color:#eadfb0;">
                          <img style="display:block;" height="4" alt="">
                            <xsl:attribute name="src">
                              <xsl:value-of select="$spacer"/>
                            </xsl:attribute>
                          </img>
                        </td>
                      </tr>
                    </table>
                    <xsl:text>*|END:IF|*</xsl:text>
                  </xsl:for-each>
                  <!--mailchimp store marker end -->
                </xsl:if>
              </xsl:for-each>
              <!-- End Weekly Specials -->
     
     
              <!-- Enclosed Features -->
              <xsl:call-template name="enclosedFeatures"/>        
     
              <!-- Featured Articles -->
              <xsl:call-template name="featuredArticles"/>
     
              <!-- Local Store Information -->
              <xsl:call-template name="storeListing" />
        
              
              <!-- Airmal stripes -->
              <xsl:call-template name="airmailStripes"/>
              
              <!-- Footer -->
              <xsl:call-template name="standardFooter" />
     
     
            </td>
          </tr>
        </table>
     
      </xsl:template>
     
    </xsl:stylesheet>
  • Rob Watkins 369 posts 701 karma points
    Mar 26, 2012 @ 10:38
    Rob Watkins
    0

    Are you getting the error on save, visualize, or when running the macro?

    Couple of things spring instantly to mind, although not immediately connected to the error;

    1. I assume that as it's called "Common.xslt" the file you are including should probably not be a problem, but I seem to remember I have had problems with included files using relative paths like that working on the site but not in Visualize or vice versa, which is why I asked where you are getting the error.

    2. I notice this: <!-- *|IFNOT:ARCHIVE_PAGE|* --> -  I assume this is a command for your mail template - as stands, I'm pretty sure it will not appear in your output HTML, as the XSLT process or will treat it as a comment on the stylesheet - you want <xsl:comment>*|IFNOT:ARCHIVE_PAGE|*</xsl:comment> to generate comments that appear in the output.

    Can't see any compile errors straight off if it's not the include issue, however.

  • Rob Watkins 369 posts 701 karma points
    Mar 26, 2012 @ 10:44
    Rob Watkins
    0

    Okay, Visual Studio reckons no errors once I'd mocked up a fake Common.xslt so I'd have a look at making sure it can find that include first.

  • Rob Watkins 369 posts 701 karma points
    Mar 26, 2012 @ 10:56
    Rob Watkins
    0

    Incidentally, was there any reason you went with this:

    <xsl:text disable-output-escaping="yes"><![CDATA[
    <td width="15">
    <img style="display:block;" src="]]></xsl:text>
    <xsl:value-of select="$spacer"/>
          <xsl:text disable-output-escaping="yes"><![CDATA[" width="15" alt="" />
          </td>
    ...

    Rather than:

    <xsl:text disable-output-escaping="yes">
    <td width="15">
    <img style="display:block;" src="{$spacer}" width="15" alt="" />
          </td>
    ...

    ?

    Thestatement and various other places use attribute commands which is a bit more readable, but you could shrink that down too with the curly brackets syntax unless I am missing something?

  • Rob Watkins 369 posts 701 karma points
    Mar 26, 2012 @ 11:02
    Rob Watkins
    0

    Oh my GOD, I HATE THIS EDITOR. "Thestatement" should be "the xsl:otherwise statement". I'd edit the above post again but it loases the code every time I do that and I just want to get on with my life now.

  • Rob Watkins 369 posts 701 karma points
    Mar 26, 2012 @ 11:29
    Rob Watkins
    0

    P.S. Actually, another thing that can give these generic messages is failures on external library calls, so might be worth checking you are both passing in and getting out what you expect to your Foodstuffs library.

Please Sign in or register to post replies

Write your reply to:

Draft