ThomasM: XSL | String vor und nach Code auslesen

Beitrag lesen

Hallo Janine,

das Problem lässt sich generischer angehen mit einem Identitäts-Template für alles außer den a-Elementen, die separat behandelt werden:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:fn="http://www.w3.org/2005/xpath-functions"
  exclude-result-prefixes="#all" version="2.0">

  <xsl:output method="xml" version="1.0" encoding="UTF-8"/>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="a">
    <xsl:variable name="pn" select="fn:local-name(parent::node())"/>
    <a href="{@href}_{$pn}.html"><xsl:value-of select="."/></a>
  </xsl:template>

</xsl:stylesheet>

Falls das weitere "unbeteiligte" a-Elemente mitnehmen sollte, lassen sich die gesuchten Elemente auch separat ansprechen:

<xsl:template match="a[parent::de]">
  <a href="{@href}_de.html"><xsl:value-of select="."/></a>
</xsl:template>

<xsl:template match="a[parent::en]">
  <a href="{@href}_en.html"><xsl:value-of select="."/></a>
</xsl:template>

Grüße,
Thomas