Thread XSLT: Kann man im Template Elemente typisieren (6 answers)
Opened by barney at 2024-11-16 13:56

barney
 2024-11-19 08:29
#196728 #196728
User since
2008-08-31
170 Artikel
BenutzerIn
[Homepage] [default_avatar]
Danke. In OTOBO werden die boolschen Werte als Strings "0" und "1" ins XML geschrieben. Diese Werte kann man mit der XSLT Funktion number() oder boolean() auswerten. Die Ergebnisvariable hat dann den entsprechenden Typ. In der Folge kann man dann die einfachen Bedingungen auf die Variable anwenden.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:template match="/RootElement/Structure1">
<NewRootElement>
<xsl:for-each select="Array1">
<TrueOrNotTrueArray>
<!-- as="xs:integer" does not seem to cast to integer. So call number() explicitly -->
<xsl:variable name="my_int" select="number(.)"/>
<xsl:choose>
<xsl:when test="$my_int">
<xsl:text>⊨ TRUE:</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>⊭ NOT TRUE:</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$my_int" />
<xsl:text>,</xsl:text>
<xsl:value-of select="$my_int + 100" />
</TrueOrNotTrueArray>
</xsl:for-each>
</NewRootElement>
</xsl:template>
</xsl:stylesheet>

View full thread XSLT: Kann man im Template Elemente typisieren