2017-07-04 25 views
1

Ich versuche, den folgenden Code auszuführen, endete aber in der folgenden Ausnahme.XSLT: SAXParseException: XML-Dokumentstrukturen müssen innerhalb derselben Entität beginnen und enden

javax.xml.transform.TransformerConfigurationException: org.xml.sax.SAXParseException: XML-Dokumentstrukturen müssen innerhalb derselben Entität beginnen und enden.

-Code ist:

<xsl:when test="/result/DECODE='CANCELLED'"> 
    <xsl:variable name="match_dates" > 
     <xsl:for-each select="/legacyresult/*[starts-with(name(), 'END-DT')]"> 
      <xsl:sort data-type="number" 
         select="concat(substring(.,7, 4),substring(.,4, 2),substring(.,1, 2))" order="descending" /> 
      <xsl:variable name="end_dt" select="." /> 
      <xsl:variable name="match" select="count(/legacyresult/*[starts-with(name(), 'EFF-DT')][text()=$end_dt])" /> 
      <xsl:if test="$match=0" > 
       <xsl:value-of select="name(.)" /> 
       <xsl:text >,</xsl:text> 
      </xsl:if> 
     </xsl:for-each> 
    </xsl:variable> 
    <xsl:variable name="final_date" > 
     <xsl:value-of select="substring-before($match_dates, ',')" /> 
     <xsl:for-each select="/legacyresult/*[starts-with(name(), 'END-DT')][.=$final_date]"> 
      <xsl:sort select="substring(name(),13,2)" data-type="number"/> 
      <xsl:variable name="prodSeq" select="substring(name(),13,2)"/> 
      <xsl:variable name="id" select="position()"/> 
      <xsl:variable name="id">ID<xsl:value-of select="$sq"/> 
      </xsl:variable> 
      <xsl:element name="product"> 
       <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute> 
       <xsl:attribute name="productId">0<xsl:value-of select="/legacyresult/*[name() = $id]/."/></xsl:attribute> 
      </xsl:element> 
     </xsl:for-each> 
    </xsl:variable> 
</xsl:when> 

Bitte lassen Sie mich wissen, was in dem obigen Code falsch ist. Ich habe die Tags überprüft. Aber ich konnte das Problem nicht finden.

+0

Was lässt Sie glauben, dass das Problem in diesem Codefragment liegt? Vermutlich existiert dies als Teil einer größeren Datei, da ein Stylesheet nicht als äußerstes Element '' haben kann? –

Antwort

0

Soweit ich sehen kann, die folgenden Fehler hast:

 <xsl:variable name="id">ID<xsl:value-of select="$sq"/> 
     </xsl:variable> 

Die erste Zeile ein / am Ende hat es omni machen, aber Sie sind auch einen Variable Tag schließen, die ‚doesn t irgendwo starten. Entfernen Sie entweder das schließende Tag oder das nachfolgende / der ersten Zeile.

+0

Das scheint das End-Tag einer früheren Variable zu sein, nämlich das Enddatum. Daher sollte die in die entsprechende Zeile verschoben werden. – ophychius

+0

Nicht wie ich es sehe. Nach 'final_date' ist ein 'for-each' drin. Nach dem 'for-each'-schließenden Tag wird die' Variable' für 'final_date' geschlossen. – ar34z

Verwandte Themen