Bastian S.: Aus XHTML Seite lesen mit xml:lang Bedingung

Hallo,

mir fiel keine bessere Überschrift ein, aber ich habe eine XHTML Seite. Diese Ist mehrsprachig gestaltet also etwa <p xml:lang="de">Licht</p><p xml:lang="en">light</p>

Ich möchte nun eine weitere xhtml seite erstellen, die jedoch nur noch die eine Sprache hat, da einige Browser noch immer mit xhtml kämpfen. Ich wollte nun die Transformation mit XSL vornehmen und zwar in der Art, dass ich entweder eine (leere) xml parse und und mir den <body/> aus der mehrsprachigen xhtml hole, oder direkt die mehrsprachige xhtml seite parse. Wie geht ich da am dümmsten vor, so dass ich nachher eine xhtml seite habe mit einer Sprache. Der Wert für xml:lang habe ich als globalen Parameter. Ich habe das Gefühl, das gibt es etwas sehr einfaches und ich denke wieder nur zu kompliziert ;-(

Würde mich über Antwort fruen, Gruß

  1. Hallo,

    ich habe eine XHTML Seite. Diese Ist mehrsprachig gestaltet also etwa <p xml:lang="de">Licht</p><p xml:lang="en">light</p>

    Ich möchte nun eine weitere xhtml seite erstellen, die jedoch nur noch die eine Sprache hat,[...]Wie geht ich da am dümmsten vor,

    Wie du am dümmsten vorgehst?
    Dazu hast du unendlich viele Möglichkeiten. Such dir was aus, egal was, das wird schon passen.

    so dass ich nachher eine xhtml seite habe mit einer Sprache. Der Wert für xml:lang habe ich als globalen Parameter. Ich habe das Gefühl, das gibt es etwas sehr einfaches und ich denke wieder nur zu kompliziert ;-(

    Eigentlich sollte ein XSL wie das folgende reichen:
    ---------------------
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" encoding="iso-8859-1" /><!--  hier noch output ergänzen -->
    <xsl:param name="lang" select="'de'" />

    <xsl:template match="/">
     <xsl:apply-templates />
    </xsl:template>

    <xsl:template match="*">
     xsl:choose
      <xsl:when test="(@xml:lang = $lang) or not(@xml:lang)">
       xsl:copy
        <xsl:for-each select="@*">
         <xsl:copy />
        </xsl:for-each>
        <xsl:apply-templates />
       </xsl:copy>
      </xsl:when>
     </xsl:choose>
    </xsl:template>

    </xsl:stylesheet>
    ---------------------

    Grüße
    Thomas