Skip to content

Instantly share code, notes, and snippets.

@kubek2k
Last active July 23, 2018 19:43
Show Gist options
  • Save kubek2k/476315716657ebb61c8b8ff5c4d7883b to your computer and use it in GitHub Desktop.
Save kubek2k/476315716657ebb61c8b8ff5c4d7883b to your computer and use it in GitHub Desktop.
The XSLT template to deal with some weird data output from some accountants program.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://www.insert.com.pl/GTSchemas/ListaPlac.xsd"
xmlns:gttns="http://www.insert.com.pl/GTSchemas/Typy.xsd">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<ListyPlac>
<xsl:apply-templates select="x:ListyPlac/x:ListaPlac" />
</ListyPlac>
</xsl:template>
<xsl:template match="x:ListaPlac">
<ListaPlac>
<NazwaListyPlac><xsl:value-of select="x:NazwaListyPlac" /></NazwaListyPlac>
<NumerListyPlac><xsl:value-of select="x:NumerListyPlac" /></NumerListyPlac>
<MiesiacListyPlac><xsl:value-of select="x:MiesiacListyPlac" /></MiesiacListyPlac>
<DataWyplaty><xsl:value-of select="x:DataWyplaty" /></DataWyplaty>
<DataPrzekazaniaSkladekZUS><xsl:value-of select="x:DataPrzekazaniaSkladekZUS" /></DataPrzekazaniaSkladekZUS>
<DataPrzekazaniaZaliczekNaPodatek><xsl:value-of select="x:DataPrzekazaniaZaliczekNaPodatek" /></DataPrzekazaniaZaliczekNaPodatek>
<xsl:apply-templates select="x:Wyplaty/x:Wyplata" />
</ListaPlac>
</xsl:template>
<xsl:template match="x:Wyplata">
<Wyplata>
<NazwaListyPlac><xsl:value-of select="../../x:NazwaListyPlac" /></NazwaListyPlac>
<NumerListyPlac><xsl:value-of select="../../x:NumerListyPlac" /></NumerListyPlac>
<IdentyfikatorWyplaty><xsl:value-of select="@Ident" /></IdentyfikatorWyplaty>
<IdentyfikatorPracownika><xsl:value-of select="x:Pracownik/@Ident" /></IdentyfikatorPracownika>
<Imie><xsl:value-of select="x:Pracownik/gttns:Imie" /></Imie>
<Nazwisko><xsl:value-of select="x:Pracownik/gttns:Nazwisko" /></Nazwisko>
<DataUrodzenia><xsl:value-of select="x:Pracownik/gttns:DataUrodzenia" /></DataUrodzenia>
<PESEL><xsl:value-of select="x:Pracownik/gttns:PESEL" /></PESEL>
<xsl:for-each select="x:Kwoty/x:Kwota">
<xsl:for-each select="child::*">
<xsl:if test="local-name(.) != 'Wartosc'">
<xsl:element name="{local-name(.)}">
<xsl:value-of select="../x:Wartosc" />
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</Wyplata>
</xsl:template>
</xsl:stylesheet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment