mein xsl sieht unten wie:Xslt Aufruf java Instanzmethode
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:SimpleDateFormat="java.text.SimpleDateFormat"
xmlns:Date="java.util.Date" exclude-result-prefixes="SimpleDateFormat Date">
<xsl:variable name="s" select="SimpleDateFormat:new(MMM/dd/yyyy-HH/mm/ss/SSS)"/>
<xsl:variable name="date" select="Date:new(number($beginTime))"/>
So jetzt, wie die Methode Format (Datum Datum) nennen der Instanz 's'?
Wenn ich <xsl:value-of select="s:format($date)" />
verwende, dann ist der Fehler: Präfix muss in einen Namespace aufgelöst werden: s.
Aber wenn ich den Namespace wie folgt hinzufügen: xmlns:s="java.text.SimpleDateFormat"
, das <xsl:value-of select="s:format($date)" />
wird Standardformat, nicht das angegebene Format zurückgeben.
Also wie bekomme ich das angegebene Format, wie MM/TT/JJJJ-HH/mm/SS/SSS?
Sorry, ich verstehe nicht ganz 'Sie müssen das Format Argument zwischen Apostrophe setzen'. Wohin mit dem Formatargument? Aber schätzen Sie Ihren Vorschlag sehr, nach Ihrem Tipp, ich habe es getan. Die einzige Frage ist 'SimpldDateFormat.format (Datum Datum)' sollte nur 1 Argument nach dem Java-Dokument nehmen, aber warum 'SimpldDateFormat: Format ($ s, $ date)' ist richtig? – frank
Über das Format: Ich meinte, dass Sie die Formatzeichenfolge "MMM/dd ..." zwischen Apostrophen angeben müssen, also 'SimpleDateFormat: neu ('MMM/dd ..')' anstelle von 'SimpleDateFormat.new (MMM/ddd ...) 'was würde versuchen, es als einen xpath anstelle eines Literals zu interpretieren. –
Über Argumente: Ja, das ist richtig. Wenn Sie auf Instanzmethoden zugreifen (also nicht statisch), müssen Sie am Anfang einen zusätzlichen Parameter angeben, um anzugeben, welche Instanz der Klasse (die durch das Namespacepräfix angegeben wird), die Sie verwenden möchten. Wenn Sie jedoch auf statische Methoden oder Konstruktoren zugreifen (z. B. den Aufruf "SimpleDateFormat.new"), benötigen Sie ihn nicht. –