Janine S.: Template Match über mehrere Tags

Beitrag lesen

Hallo Thomas,

vielen Dank für deinen Denkansatz. Ich habe das Problem nun ein wenig anders gelöst, da ich noch sehr viel Code drumherum habe und nicht so einfach mit xsl:copy-of arbeiten konnte.

Ich filtere zunächst nach "Geltungsbereich" im ersten w:r (was bisher von Word noch nie zerschossen wurde), schreibe dann w:p komplett neu und füge, je nach Inhalt des w:r (es gibt noch mehr) meine Variablen ein. Sehr komplex, aber leider dank WordML nicht anders lösbar...

<xsl:template match="//w:p[contains(.//w:r,'Geltungsbereich') or contains(.//w:r,'Scope') or contains(.//w:r,'Vertraulichkeitsklasse') or contains(.//w:r,'Confidentiality Class')]">
   <xsl:variable name="descr" select=".//w:r"/>
   <w:p>
      <!--Hier stehen weitere xsl:attribute und Word-Formatierungstags-->
      <w:r>
         <!--Hier kommen nochmal viele xsl:attribute und Word-Formatierungstags-->
         <xsl:choose>
            <xsl:when test="contains($descr,'Geltungsbereich') or contains($descr,'Scope')">
               <xsl:value-of select="$istrings/text[@name='scope']/* [local-name () = $lang]"/>
            </xsl:when>
            <xsl:when test="contains($descr,'Vertraulichkeitsklasse') or contains($descr,'Confidentiality Class')">
               <xsl:value-of select="$istrings/text[@name='confidentiality']/* [local-name () = $lang]"/>
            </xsl:when>
            <xsl:otherwise>
               <xsl:text>FEHLER</xsl:text>
            </xsl:otherwise>
         </xsl:choose>
      </w:r>
   </w:p>
</xsl:template>

Trotzdem danke für deinen Denkanstoß 😉 Viele Grüße Janine