Steffen J: Attribute ersetzen

Beitrag lesen

So jetzt hab ichs hinbekommen bis auf ne kleinigkeit.
das stylesheet vergleicht und ersetzt jetzt alle attribute die im wörterbuch übersetzt sind.
so nun zur kleinigkeit: ich brauche entweder einen weg wie ich die for schleife nach dem finden des entsprechenden wortes verlassen kann. soweit ich aber geleesn habe ist das mit der for schleife nicht so ganz einfach das diese anderst funktioniert wie in java oder ++.oder eine vernünftige anweisung was er tun soll wenn er es gefunden hat. normal würde ich das einfach mit nem boolean machen aber mit variablen siehts ja ähnlich aus wie mit der for schleife.
hat jemand ne idee wie ich aus der for schleife rauskomm oder die bedingung so umschreiben kann das nur ein wort ausgegeben wir.
hier noch der code.

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
 <xsl:output method="xml" indent="yes"/>
 <xsl:strip-space elements="*"/>

<xsl:variable name="target_lang" select="en"/>

<xsl:template match="/">
  <xsl:apply-templates select="node()" mode="translate">
   <xsl:with-param name="target_lang">en</xsl:with-param>
  </xsl:apply-templates>
 </xsl:template>

<xsl:template match="node()" mode="translate">
  <xsl:param name="target_lang"/>
  xsl:copy
   <xsl:apply-templates select="node()|@*" mode="translate">
    <xsl:with-param name="target_lang" select="$target_lang"/>
   </xsl:apply-templates>
  </xsl:copy>
 </xsl:template>

<xsl:template match="@*" mode="translate">
  <xsl:param name="target_lang"/>
  <xsl:attribute name="{name()}">
   <xsl:call-template name="trans">
   <xsl:with-param name="target_lang" select="$target_lang"/>
   <xsl:with-param name="thisWord" select="."/>
   </xsl:call-template>
  </xsl:attribute>
 </xsl:template>

<xsl:template name="trans">
  <xsl:param name="target_lang"/>
  <xsl:param name="thisWord"/>

<xsl:variable name="dict" select="document('ProgalDict.tmx')"/>
  <xsl:variable name="source_lang" select="$dict/tmx/header/@srclang"/>

<!-- so hier is das problem-->
   <xsl:for-each select="$dict/tmx/body/*">
   xsl:choose
    <xsl:when test="tuv[@xml:lang=$source_lang]/seg=$thisWord">
     <xsl:value-of select="tuv[@xml:lang=$target_lang]/seg" />
    </xsl:when>
    xsl:otherwise
     <xsl:if test="$dict/tmx/body/tu[last()]/tuv[last()]=tuv[last()]">
      <xsl:value-of select="$thisWord" />
     </xsl:if>
    </xsl:otherwise>
   </xsl:choose>
   </xsl:for-each>
 </xsl:template>

</xsl:stylesheet>