Kati: Alter berechnen mit "year-from-date"

Hallo zusammen,

ich möchte mir gerne über eine html-Datei das Alter meiner Patienten ausgeben lassen. Das sieht folgendermaßen in meiner .xslt aus:

<xsl:for-each select="Patient">

<xsl:value-of select="year-from-date(current-date()) - year-from-  date(Geburtsdatum)"/>
xsl:text Jahre</xsl:text><br/>

</xsl:for-each>

Das Programm sagt mir aber:
"Error in XPath expression
 unknown function - name and number of arguments do not match any function
 signature in the static context - 'year-from-date'"

Wie mache ich es richtig, damit mir das alter ausgegeben wird?

  1. Hallo Kati!

    Wie mache ich es richtig, damit mir das alter ausgegeben wird?

    Hm, XML is not my home, aber in Perl gibt es da ein Modülchen, das wurde neulich um eben dieses Feature ersetzt: Klick auf »Heute« in meiner Signatur... ;)

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --
    _ - jenseits vom delirium - _

       Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
    1. Danke!

      Ihr habt mir sehr geholfen.

      1. hi,

        Ihr habt mir sehr geholfen.

        Aus Archivierungszwecken wäre es noch Nett, wenn du kurz beschreiben könntest, was geholfen bzw. wie du dein Problem gelöst hast.

        mfg

        --
        echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
        array(2) {
          ["SELFCODE"]=>
          string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
          ["Meaningful"]=>
          string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
        }
  2. hi,

    <xsl:for-each select="Patient">

    <xsl:value-of select="year-from-date(current-date()) - year-from-  date(Geburtsdatum)"/>
    xsl:text Jahre</xsl:text><br/>

    </xsl:for-each>

    Vielleicht kommt die Fehlermeldung, weil du die year-from-date()-Funktion zweimal aufrufst.
    Eventuell mal mit 2 selects vesuchen.

    <xsl:value-of select="year-from-date(current-date())"/>  
    <xsl:value-of select="year-from-date(Geburtsdatum)"/>  
    <xsl:text> Jahre</xsl:text><br/>
    

    Warum rufst du eigentlich current-date() auf, wenn du den Geburtstag haben willst?

    http://www.zvon.org/xxl/XSL-Ref/Tutorials/Date-Time/dt2.html
    http://zvon.org/xxl/XSL-Ref/Tutorials/Date-Time/dt1.html

    mfg

    --
    echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
    array(2) {
      ["SELFCODE"]=>
      string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
      ["Meaningful"]=>
      string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
    }
  3. Hallo Kati,

    ich möchte mir gerne über eine html-Datei das Alter meiner Patienten ausgeben lassen. Das sieht folgendermaßen in meiner .xslt aus:

    <xsl:for-each select="Patient">

    <xsl:value-of select="year-from-date(current-date()) - year-from-  date(Geburtsdatum)"/>
    xsl:text Jahre</xsl:text><br/>

    </xsl:for-each>

    Diese Datumsfunktionen stammen aus XPath 2.0 und werden mit XSLT 2.0 oder XQuery 1.0 verwendet. Browser unterstützen nur XSLT/XPath 1.0. Mit einem Prozessor wie Saxon oder AltovaXML funktioniert dieser Test:

    <?xml version="1.0" encoding="UTF-8"?>  
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
      xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xs="http://www.w3.org/2001/XMLSchema">  
      
      <xsl:template match="/">  
        <xsl:value-of select="fn:year-from-date(fn:current-date()) - fn:year-from-date(xs:date('1970-01-01'))"/><!-- 39 -->  
      </xsl:template>  
      
    </xsl:stylesheet>
    

    Grüße,
    Thomas