Gunnar Bittersmann: Veränderung des Inhalts?

Hi (Thomas?) ;-),
Ist mit XSLT die Veränderung des Inhalts von Elementen möglich? Also z.B. wenn Rosis Nummer im XML-Dokument als <phone>+49 89 32168</phone> steht, dass sie als (089) 32168 ausgegeben wird?

Live long and prosper,
Gunnar

--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  1. echo $begrüßung;

    Ist mit XSLT die Veränderung des Inhalts von Elementen möglich? Also z.B. wenn Rosis Nummer im XML-Dokument als <phone>+49 89 32168</phone> steht, dass sie als (089) 32168 ausgegeben wird?

    Es gibt da einige XPath-Funktionen, mit denen man Strings auseinandernehmen (z.B: substring*) und wieder zusammensetzen (z.B. concat) kann.

    echo "$verabschiedung $name";

  2. Hi (Thomas?) ;-),

    Hallo Gunnar ;-)

    Ist mit XSLT die Veränderung des Inhalts von Elementen möglich? Also z.B. wenn Rosis Nummer im XML-Dokument als <phone>+49 89 32168</phone> steht, dass sie als (089) 32168 ausgegeben wird?

    Die Antwort hast du ja schon bekommen ;-)
    concat(substring(.,2,2), ' (0', substring(.,5,2), ....) - was aber nicht so toll ist, wegen der Nummer der Region - oder mit rekursiven Template auf die Leerzeichen.

    Live long and prosper,

    Charlie: Where am I, Purgatory?
    Wesley: Worse, Texas!
    (Morgan Freeman (W.) & Chris Rock (C.) in Nurse Betty)

    Grüße
    Thomas

    1. oder mit rekursiven Template auf die Leerzeichen.

      Ich verzichte auf die Klammern um die Vorwahl. Dann tut es:

      <xsl:choose>  
        <xsl:when test="substring-before(rdf:value, ' ') = '+49'">  
          <xsl:text>0</xsl:text>  
          <xsl:value-of select="substring-after(rdf:value, ' ')"/>  
        </xsl:when>  
        <xsl:otherwise>  
          <xsl:value-of select="rdf:value"/>  
        </xsl:otherwise>  
      </xsl:choose>
      

      Danke euch beiden.

      Live long and prosper,
      Gunnar

      PS. Mit dem <phone> hatte ich vereinfacht; tatsächlich sind die Daten in RDF/XML im vcard-Vokabular.

      Die Angabe des rdf:value-Attributs mit Namensraum-Präfix ist in XSLT so OK?

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. echo $begrüßung;

        Ich verzichte auf die Klammern um die Vorwahl.

        Die bekommen wir auch noch hin:

        <xsl:choose>  
          <xsl:when test="substring-before(rdf:value, ' ') = '+49'">  
            <xsl:value-of select="concat('(0', substring-before(substring-after(rdf:value, ' '), ' '), ')')"/>  
            <xsl:value-of select="substring-after(substring-after(rdf:value, ' '), ' ')"/>  
          </xsl:when>  
          <xsl:otherwise>  
            <xsl:value-of select="rdf:value"/>  
          </xsl:otherwise>  
        </xsl:choose>
        

        echo "$verabschiedung $name";

      2. Hallo,

        Die Angabe des rdf:value-Attributs mit Namensraum-Präfix ist in XSLT so OK?

        Ja, ist sogar notwendig. Du musst natürlich den Namesraum für rdf im xsl:stylesheet auch angeben.

        Grüße
        Thomas