PeterP: Inhalt in Abhänigkeit eines Attributes einfügen.

Beitrag lesen

Hallo, ich beschäftige mich nun schon ein wenig mit XSL, nur kann ich dieses Problem nicht lösen.

Ich habe folgendes XML eines Dokumentes:
<Document Language="DE">
<Cover>
<CoverImg>
</CoverImg>
</Cover>
<Chapter>
...
</Chapter>
</Document>

Nun soll mittels XLS ein Hinweis (<note>) aus der nachfolgenden XML-Datei (langcontent.xml) in Abhänigkeit des Language-Attibutes des Document-Elemetes unter dem CoverImg-Element eingefügt werden. Alles anderes auf dem Document soll übernommen werden.

<langcontent>
<content language="DE">
<note>...</note>
</content>
<content language="EN">
<note>...</note>
</content>
</langcontent>

Meine bisherige XLS:

<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:copy-of select="@*"/>
xsl:apply-templates/
</xsl:element>
</xsl:template>

<xsl:template match="Document">
xsl:choose
<xsl:when test="@RSKM-Language = 'DE'">
xsl:copy
<xsl:copy-of select="@*"/>
xsl:apply-templates
<xsl:with-param name="DocLanguage" select="@Language" />
</xsl:apply-templates>
</xsl:copy>
</xsl:when>
....
</xsl:choose>
</xsl:template>

<xsl:template match="Cover/CoverImg">
<xsl:param name="DocLanguage" />
xsl:copy
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<xsl:element name="LanguageWarning">
<LanguageWarningSignal>ACHTUNG!</LanguageWarningSignal>
<xsl:copy-of select="document('langcontent.xml')/langcontent/content[@language = $DocLanguage]/note" />
</xsl:element>
</xsl:template>

Das Dokument soll am ende so aussehen:

<Document Language="DE">
<Cover>
<CoverImg>
</CoverImg>
<note>...</note>
</Cover>
<Chapter>
...
</Chapter>
</Document>