mit scheint es so einfach ist, in XSLT 2.0, aber Microsoft in seiner unendlichen Weisheit XSLT 2.0 2005.Wie kann ich eine ISO 8601 Dauer Sekunden konvertieren XSLT 1.0
Antwort
Eine Option wäre, alle Parsing und Berechnung in XSLT zu tun.
Allerdings wäre eine weitere Option XSLT erweitern mit einer benutzerdefinierten Skriptfunktion in C#:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:myext="urn:myExtension"
exclude-result-prefixes="msxsl myext">
<xsl:output method="xml" indent="yes"/>
<msxsl:script language="C#" implements-prefix="myext">
<![CDATA[
public int SecondsFromIsoDuration(string isoDuration)
{
// parse and convert here;
}
]]>
</msxsl:script>
<xsl:template match="@* | node()">
<root durationInSeconds="{myext:SecondsFromIsoDuration(@duration)}" />
</xsl:template>
</xsl:stylesheet>
Die Script-Funktion wird zur Laufzeit in eine temporäre Montage und dann ausgeführt kompiliert werden. Beachten Sie jedoch, dass Sie Ihre XSLT zwischenspeichern, da bei jeder XSLT-Kompilierung eine neue Assembly erstellt wird, die erst beim Beenden der Anwendung entladen wird.
Interessant, ich wusste nicht, dass es so einfach war, C# einzubetten. –
Ja, es ist ziemlich einfach. Jedoch einige Vorbehalte. Wenn Sie externe Baugruppen referenzieren, könnten Sie Mono brechen Kompatibilität, das Problem, das ich mit dem Entladen der Baugruppe erwähnt habe, gibt es auch Erweiterungsobjekte, ein besser geeigneter Ansatz, aber leider immer noch mit schlechter Leistung in .NET 3.5 als Skript. –
mit XSLT in Visual Studio nicht unterstützt zu tun 1.0 müssen Sie substring-before() und substring-after() verwenden, um sie in einzelne Felder aufzuteilen. Dann multipliziere einfach. Zweifellos ist es möglich, obwohl es sehr mühsam erscheint.
Ich hatte Angst davor :-( –
- 1. Wie analysiere ich eine ISO 8601 formatierte Dauer mit moment.js?
- 2. Python - Konvertieren Datum ISO 8601
- 3. Konvertieren DateTime zu ISO 8601
- 4. Konvertieren von ISO 8601 Datum Zeit in Sekunden in Python
- 5. Wie wird die YouTube API Dauer (ISO 8601 Dauer im Format PT # M # S) in Sekunden umgewandelt?
- 6. ein normales Datum ISO-8601-Format konvertieren
- 7. Gibt es eine einfache Möglichkeit, ISO 8601 Dauer zu Timedelta zu konvertieren
- 8. Ruby on Rails - YouTube API - Wie formatiere ich die Dauer ISO 8601 (PT45S)
- 9. ISO 8601 Zeitintervallanalyse in Java
- 10. Unix-Zeitstempel ISO 8601
- 11. Zeitzone von ISO 8601
- 12. Vergleichen 2 ISO 8601 Zeitstempel und Ausgabe Sekunden/Minuten Unterschied
- 13. Wie wird die YouTube API-Dauer in Sekunden umgewandelt?
- 14. DataContractJsonSerializer Parsing ISO 8601 Datum
- 15. Wie formatiere ich eine Dauer in Stunden, Minuten und Sekunden?
- 16. Regex für ISO 8601 Dauern
- 17. Wie kann ich das in Youtube veröffentlichte Datum (ISO 8601) Format in Javascript oder Jquery konvertieren?
- 18. Zeit ISO 8601 in Ruby
- 19. String in Integer in XSLT 1.0 konvertieren
- 20. Wie mit XSLT 1.0
- 21. Zeitstempel nach ISO 8601 in Lua
- 22. Wie formatiere ich ein Datum als ISO 8601 in moment.js?
- 23. Wie analysiere ich einen ISO 8601-Zeitstempel in GoLang?
- 24. XSLT 1.0-Gruppe von
- 25. Wie erkennen 30 Sekunden Dauer
- 26. Parsing ISO Dauer mit JSON.Net
- 27. ISO-8601 Zeichenfolge in Google Tabellen Zelle
- 28. C Präprozessor __TIMESTAMP__ in ISO 8601: 2004
- 29. PHP: Minuten von ISO 8601-Format subtrahieren
- 30. Konvertieren Sie eine Zeichenfolge in ISO-Datumsformat
Sie sind schon seit zwei Jahren: http://blogs.msdn.com/xmlteam/archive/2007/01/29/xslt-2-0.aspx! Bald wird es ein Ergebnis geben! –
Hmmm Ich frage mich, ob ich meinen Chef davon überzeugen kann, dass es so weit geht, bis es richtig ist. :-) –