Thomas J.S.: XSL und Bedingungen

Beitrag lesen

Hallo

ich hab's jetzt doch selber hinbekommen,

nur du fragst hier etwas anderes ab, als du im vorherigen posting gesagt hast.

moechte ich fuer Kunde 74614 die Tel.Nr. von Kunde 85012 ausgeben und umgekehrt.

"und umgekehrt" wiederspricht hier wiederum dem ansatz "wenn associerter_kunde = 0" !?!

aber warum nicht:

---------die xsl datei----------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="/root">
  <xsl:variable name="assoc" select="//Kunde/Assoziierter_Kunde" />

<html>
  <head></head>
  <body>

<xsl:for-each select="Kunde">
<xsl:variable name="num" select="Nr" />
<xsl:variable name="assocnum" select="Assoziierter_Kunde" />

<xsl:variable name="telnum1" select="following-sibling::Kunde[Assoziierter_Kunde = $num]/TelNr | preceding-sibling::Kunde[Assoziierter_Kunde = $num]/TelNr" />
  <xsl:variable name="telnum2" select="following-sibling::Kunde[Nr = $assocnum]/TelNr | preceding-sibling::Kunde[Nr = $assocnum]/TelNr" />
  <p>
  <i><xsl:value-of select="position()" /></i>&#160;
  xsl:choose
   <xsl:when test="Assoziierter_Kunde = 0 and Nr = $assoc">
      <b>ja</b>&#160;
      xsl:choose
         <xsl:when test="$telnum1"><u>telnumm assoc.k:(<xsl:value-of select="$telnum1" />)</u>&#160;</xsl:when>
         <xsl:when test="$telnum2"><u>telnumm assoc.k:(<xsl:value-of select="$telnum2" />)</u>&#160;</xsl:when>
         xsl:otherwise</xsl:otherwise>
      </xsl:choose>
      (nummer:<xsl:value-of select="Nr" /> / assoc.kunde:<xsl:value-of select="Assoziierter_Kunde" /> / telnum:<xsl:value-of select="TelNr" />)
   </xsl:when>

<xsl:when test="Assoziierter_Kunde = 0 and not(Nr = $assoc)">
      <b>nein</b>&#160;
      xsl:choose
         <xsl:when test="$telnum1"><u>telnumm assoc.k:(<xsl:value-of select="$telnum1" />)</u>&#160;</xsl:when>
         <xsl:when test="$telnum2"><u>telnumm assoc.k:(<xsl:value-of select="$telnum2" />)</u>&#160;</xsl:when>
         xsl:otherwise</xsl:otherwise>
      </xsl:choose>
      (nummer:<xsl:value-of select="Nr" /> / assoc.kunde:<xsl:value-of select="Assoziierter_Kunde" /> / telnum:<xsl:value-of select="TelNr" />)
   </xsl:when>

xsl:otherwise
      trifft keines zu&#160;
      xsl:choose
         <xsl:when test="$telnum1"><u>telnumm assoc.k:(<xsl:value-of select="$telnum1" />)</u>&#160;</xsl:when>
         <xsl:when test="$telnum2"><u>telnumm assoc.k:(<xsl:value-of select="$telnum2" />)</u>&#160;</xsl:when>
         xsl:otherwise</xsl:otherwise>
      </xsl:choose>
      (nummer:<xsl:value-of select="Nr" /> / assoc.kunde:<xsl:value-of select="Assoziierter_Kunde" /> / telnum:<xsl:value-of select="TelNr" />)
   </xsl:otherwise>
  </xsl:choose>

</p>
</xsl:for-each>

</body>
</html>
  </xsl:template>
</xsl:stylesheet>

-----------------------

deine xml hane ich nur so weit ergänzt:
<?xml version="1.0"?>
<root>
<Kunde>
  <Nr>74614</Nr>
  <Assoziierter_Kunde>0</Assoziierter_Kunde>
  <TelNr>456224744</TelNr>
</Kunde>

und wo weiter mit den kunden.

</root>

-------

grüße
thomas