Pomocník systému OBERON
Transformačné šablóny XSLT

Základné informácie

Príklad transformačnej šablóny z XML do inej štruktúry XML

Nasledujúci príklad vykoná konverziu XML štruktúry obchodného partnera používanú systémom OBERON v dokladoch napr. faktúra, objednávka, výdajka alebo príjemka do vlastnej štruktúry XML. Obdobným spôsobom je možné vykonať aj spätnú konverziu údajov z vlastnej štruktúry XML na štruktúru používanú systémom OBERON.

Príklad zdrojovej XML štruktúry:

     <?xml version="1.0" encoding="UTF-8"?> 
    </BusinessPartners>
        <BusinessPartner IDNum="1001"> 
           <Name>Test, s.r.o.</Name>
            <IdentificationNumber>31658768</IdentificationNumber>
            <IdentificationNumber_Tax>2225557779</IdentificationNumber_Tax>
            <IdentificationNumber_VAT>SK2225557779</IdentificationNumber_VAT>
            <Branch_Name>Pobočka</Branch_Name>
            <CustomsOffice_Number_SBL>12365478901</CustomsOffice_Number_SBL>
            <Address_Residence>
                <Street_Name_Full>Partizánska 138/2</Street_Name_Full>
                <Postal_Code>058 01</Postal_Code>
                <City>Poprad</City>
            </Address_Residence>
        </BusinessPartner>
            .
            .
    </BusinessPartners>          

Transformačná štruktúra XSLT:

     <?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <partneri_zoznam>
        <!-- XPath výraz pre výber požadovaných položiek zo štruktúry XML a prechádzanie všetkými elementmi typu 'BusinessPartner' 
               nachádzajúcimi sa v otcovskom elemente 'BusinessPartners' zdrojovej XML štruktúry -->
            <xsl:for-each select="BusinessPartners/BusinessPartner">
                <partner>
                    <!-- mapovanie vlastností pôvodného xml do novej štruktúry -->
                    <identifikator><xsl:value-of select=" @IDNum"/></identifikator> <!-- znak '@' pred identifikátorom 'IDNum' znamená načítanie hodnoty z atribútu -->
                    <nazov><xsl:value-of select="Name"/></nazov>
                    <ico><xsl:value-of select="IdentificationNumber"/></ico>
                    <dic><xsl:value-of select="IdentificationNumber_Tax"/></dic>
                    <ic_dph><xsl:value-of select="IdentificationNumber_VAT"/></ic_dph>
                    <pobocka_nazov><xsl:value-of select="Branch_Name"/></pobocka_nazov>
                    <cislo_sbl><xsl:value-of select="CustomsOffice_Number_SBL"/></cislo_sbl>
                    <sidlo_ulica><xsl:value-of select="Address_Residence/Street_Name_Full"/></sidlo_ulica> <!-- vnorenie do hlbšej úrovne pomocou znaku '/' -->
                    <sidlo_psc><xsl:value-of select="Address_Residence/Postal_Code"/></sidlo_psc>
                    <sidlo_obec><xsl:value-of select="Address_Residence/City"/></sidlo_obec> 
                </partner>
            </xsl:for-each>
        </partneri_zoznam>  
    </xsl:template>           

Výsledný XML súbor po vykonaní konverzie pomocou XSLT šablóny:

     <?xml version="1.0" encoding="UTF-8"?> 
    <partneri_zoznam>
        <partner>
            <identifikator>1001</identifikator>
            <nazov>Test, s.r.o.</nazov>
            <ico>31658768</ico>
            <dic>2225557779</dic>
            <ic_dph>SK2225557779</ic_dph>
            <pobocka_nazov>Pobočka</pobocka_nazov>
            <cislo_sbl>12365478901</cislo_sbl>
            <sidlo_ulica>Partizánska 138/2</sidlo_ulica>
            <sidlo_psc>058 01</sidlo_psc>
            <sidlo_obec>Poprad</sidlo_obec>
        </partner>
            .
            .
    </partneri_zoznam>           
Príbuzné témy

Exalogic, s.r.o., www.exalogic.sk

15.1.2018