0

I would like to know if it's possible to transform this:

    <?xml version="1.0" encoding="UTF-8"?>
    <XML>
    <GLOBAL_DETORDERLBL>ORDER</GLOBAL_DETORDERLBL>
    <GLOBAL_DETCUSTLBL>CUST</GLOBAL_DETCUSTLBL>
    <GLOBAL_DETAANTLBL>QTY</GLOBAL_DETAANTLBL>
    <GLOBAL_DETKLEURLBL>KLEUR</GLOBAL_DETKLEURLBL>
    <GLOBAL_DETCOMPLBL>COMPONENTS</GLOBAL_DETCOMPLBL>
    <GLOBAL_DETPROFLBL>PROFILE</GLOBAL_DETPROFLBL>
    <GLOBAL_PROFIEL></GLOBAL_PROFIEL>
    <GLOBAL_PROFIELLBL>PROFILE:</GLOBAL_PROFIELLBL>
    <GLOBAL_CATTO>NIEUW</GLOBAL_CATTO>
    <GLOBAL_CATFR>NIEUW</GLOBAL_CATFR>
    <GLOBAL_CAT2LBL>CAT 2  :</GLOBAL_CAT2LBL>
    <GLOBAL_GROEP2></GLOBAL_GROEP2>
    <GLOBAL_GROEP1></GLOBAL_GROEP1>
    <GLOBAL_GROEPLBL>GROUP  :</GLOBAL_GROEPLBL>
    <GLOBAL_TEXT></GLOBAL_TEXT>
    <GLOBAL_TEXTLBL>TEKST :</GLOBAL_TEXTLBL>
    <GLOBAL_ORDER15></GLOBAL_ORDER15>
    <GLOBAL_ORDER14></GLOBAL_ORDER14>
    <GLOBAL_ORDER13></GLOBAL_ORDER13>
    <GLOBAL_ORDER12></GLOBAL_ORDER12>
    <GLOBAL_ORDER11></GLOBAL_ORDER11>
    <GLOBAL_ORDER10></GLOBAL_ORDER10>
    <GLOBAL_ORDER9></GLOBAL_ORDER9>
    <GLOBAL_ORDER8></GLOBAL_ORDER8>
    <GLOBAL_ORDER7></GLOBAL_ORDER7>
    <GLOBAL_ORDER6></GLOBAL_ORDER6>
    <GLOBAL_DATE>27/03/14</GLOBAL_DATE>
    <GLOBAL_DATELBL>DATE  :</GLOBAL_DATELBL>
    <GLOBAL_ORDER5></GLOBAL_ORDER5>
    <GLOBAL_ORDER4></GLOBAL_ORDER4>
    <GLOBAL_ORDER3></GLOBAL_ORDER3>
    <GLOBAL_ORDER2></GLOBAL_ORDER2>
    <GLOBAL_ORDER1></GLOBAL_ORDER1>
    <GLOBAL_ORDERSLBL>ORDERS :</GLOBAL_ORDERSLBL>
    <GLOBAL_WORKCENTER>Insulation bicolor machine 1</GLOBAL_WORKCENTER>
    <GLOBAL_WORKCENTERLBL>Workcenter</GLOBAL_WORKCENTERLBL>
    <GLOBAL_INROL>  38043</GLOBAL_INROL>
    <GLOBAL_INROLBILBL>INROLBON BICOLORS</GLOBAL_INROLBILBL>
    <GLOBAL_ADRES>Aliplast Sp. z o.o.
    20-276 Lublin</GLOBAL_ADRES>
    <GLOBAL_PAGELBL>Page</GLOBAL_PAGELBL>
    <FIELD_NEWPROD></FIELD_NEWPROD>
    <FIELD_MANR>IP011/9016M/6.5</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>   30</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER></FIELD_CONTAINER>
    <FIELD_PRODORDER>       6242586</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC>XIP011B</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS></FIELD_BATS>
    <FIELD_STOCKSIGN></FIELD_STOCKSIGN>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME></FIELD_NAME>
    <FIELD_PRDC>XIP011A</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS></FIELD_BATS>
    <FIELD_STOCKSIGN></FIELD_STOCKSIGN>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME></FIELD_NAME>
    <FIELD_PRDC>P4710</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS></FIELD_BATS>
    <FIELD_STOCKSIGN></FIELD_STOCKSIGN>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME></FIELD_NAME>
    <FIELD_PRDC>P4711</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS></FIELD_BATS>
    <FIELD_STOCKSIGN></FIELD_STOCKSIGN>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME></FIELD_NAME>
<FIELD_NEWPROD>...
    </XML>

to

    <?xml version="1.0" encoding="UTF-8"?>
    <XML>
        <GLOBAL_DETORDERLBL>ORDER</GLOBAL_DETORDERLBL>
        <GLOBAL_DETCUSTLBL>CUST</GLOBAL_DETCUSTLBL>
        <GLOBAL_DETAANTLBL>QTY</GLOBAL_DETAANTLBL>
        <GLOBAL_DETKLEURLBL>KLEUR</GLOBAL_DETKLEURLBL>
        <GLOBAL_DETCOMPLBL>COMPONENTS</GLOBAL_DETCOMPLBL>
        <GLOBAL_DETPROFLBL>PROFILE</GLOBAL_DETPROFLBL>
        <GLOBAL_PROFIEL/>
        <GLOBAL_PROFIELLBL>PROFILE:</GLOBAL_PROFIELLBL>
        <GLOBAL_CATTO>NIEUW</GLOBAL_CATTO>
        <GLOBAL_CATFR>NIEUW</GLOBAL_CATFR>
        <GLOBAL_CAT2LBL>CAT 2  :</GLOBAL_CAT2LBL>
        <GLOBAL_GROEP2/>
        <GLOBAL_GROEP1/>
        <GLOBAL_GROEPLBL>GROUP  :</GLOBAL_GROEPLBL>
        <GLOBAL_TEXT/>
        <GLOBAL_TEXTLBL>TEKST :</GLOBAL_TEXTLBL>
        <GLOBAL_ORDER15/>
        <GLOBAL_ORDER14/>
        <GLOBAL_ORDER13/>
        <GLOBAL_ORDER12/>
        <GLOBAL_ORDER11/>
        <GLOBAL_ORDER10/>
        <GLOBAL_ORDER9/>
        <GLOBAL_ORDER8/>
        <GLOBAL_ORDER7/>
        <GLOBAL_ORDER6/>
        <GLOBAL_DATE>27/03/14</GLOBAL_DATE>
        <GLOBAL_DATELBL>DATE  :</GLOBAL_DATELBL>
        <GLOBAL_ORDER5/>
        <GLOBAL_ORDER4/>
        <GLOBAL_ORDER3/>
        <GLOBAL_ORDER2/>
        <GLOBAL_ORDER1/>
        <GLOBAL_ORDERSLBL>ORDERS :</GLOBAL_ORDERSLBL>
        <GLOBAL_WORKCENTER>Insulation bicolor machine 1</GLOBAL_WORKCENTER>
        <GLOBAL_WORKCENTERLBL>Workcenter</GLOBAL_WORKCENTERLBL>
        <GLOBAL_INROL>  38043</GLOBAL_INROL>
        <GLOBAL_INROLBILBL>INROLBON BICOLORS</GLOBAL_INROLBILBL>
        <GLOBAL_ADRES></GLOBAL_ADRES>
        <GLOBAL_PAGELBL>Page</GLOBAL_PAGELBL>
        <LINE>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP011/9016M/6.5</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>   30</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242586</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <ITEM>
        <FIELD_PRDC>XIP011B</FIELD_PRDC>
        <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
        <FIELD_BATS/>
        <FIELD_STOCKSIGN/>
        <FIELD_QTY>   30</FIELD_QTY>
        <FIELD_NAME/>
        </ITEM>
        <ITEM>
        <FIELD_PRDC>XIP011A</FIELD_PRDC>
        <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
        <FIELD_BATS/>
        <FIELD_STOCKSIGN/>
        <FIELD_QTY>   30</FIELD_QTY>
        <FIELD_NAME/>
        </ITEM>
        <ITEM>
        <FIELD_PRDC>P4710</FIELD_PRDC>
        <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
        <FIELD_BATS/>
        <FIELD_STOCKSIGN/>
        <FIELD_QTY>   30</FIELD_QTY>
        <FIELD_NAME/>
        </ITEM>
        <ITEM>
        <FIELD_PRDC>P4711</FIELD_PRDC>
        <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
        <FIELD_BATS/>
        <FIELD_STOCKSIGN/>
        <FIELD_QTY>   30</FIELD_QTY>
        <FIELD_NAME/>
        </ITEM>
        </LINE>
<LINE>...
    </XML>

using xslt 1.0

LINE is generated when FIELD_NEWPROD is matched, ITEM is a subgroup in LINE when FIELD_PRDC is matched. All FIELD_* are possible to form groups but only those defined should make them. (like FIELD_NEWPROD)

I need an example that I can expand with more depth (deeper levels on root, LINE and ITEM). Before I looked at XSLT, I used my own definition to make grouping but it's only 1-level deep.

<GROUP name="ORDER" value="FIELD_ORDNOLBL"/>
    <GROUP name="LIJN" value="FIELD_PRDITM"/>
    <GROUP name="TOTAL_ORDER" value="FIELD_TOTALLBL"/>
    <GROUP name="COMMOD" value="FIELD_COMCODLBL"/>
    <GROUP name="SERIENR" value="FIELD_SENOLBL"/>
    <GROUP name="TOTAL" value="FIELD_TOTLBL"/>

This is how I created groups but now I need a definition that can also handle nested groups. *(This applies to another job so the data is not not relevent to this example)*

I'm totally new to xsl and wish to learn it through a practical example. I'll be transforming the xml in C# to produce the above result but I'm missing the first steps to create an xsl file.

static void Main(string[] args)
{

    List<String> _lines = Lines("ALR494AL.dat");
    List<KeyValuePair<String, String>> _library = Library(_lines);
    String _xml = XMLDocument(_library);

    StringBuilder _result = new StringBuilder();

    XPathDocument _xpd = new XPathDocument(new StringReader(_xml));
    XslCompiledTransform _xct = new XslCompiledTransform();
    XmlWriter _writer = XmlWriter.Create(_result);

    _xct.Load("ALR494AL.xsl");
    _xct.Transform(_xpd, null, _writer);

}

Your help is greatly appreciated!

7
  • Just a curiosity: why not using XLinq, which could take the task far easier and (probably) faster? Commented Mar 28, 2014 at 14:07
  • Hi Mario, I need to have some kind of external definition because files can have their own "jobs". And grouping/nesting has to be defined outside the program. But I will take a look at xlinq and see if I can interpret my configuration somehow. Commented Mar 30, 2014 at 13:58
  • Please add (or edit) the required output to match your updated input and explain the rules by which the output should be produced. An example can go only so far (not far enough in this case, IMHO). Commented Mar 30, 2014 at 16:57
  • Hi Michael, I've updated my question. I can't believe there is not a general "golden" solution for this problem. (Flat XML > Grouped XML with nesting) Commented Mar 30, 2014 at 17:55
  • Can the input contain more than one <FIELD_NEWPROD> element? Commented Mar 30, 2014 at 18:16

3 Answers 3

2

I can't believe there is not a general "golden" solution for this problem. (Flat XML > Grouped XML with nesting)

Actually, this is not simple at all, at least not in XSLT 1.0. For this, you can thank the person upstream of you who constructed the specific flat schema of your input. If you have any control over that, perhaps you should look into it. It appears to be a poorly constructed export from a poorly designed database.

Anyway, try:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:key name="line-fields" 
         match="*[starts-with(name(), 'FIELD_')][not(self::FIELD_PRDC)]" 
         use="concat(generate-id(preceding-sibling::FIELD_NEWPROD[1]), '|', count(preceding-sibling::FIELD_PRDC))" />

<xsl:key name="item-headers" 
         match="FIELD_PRDC" 
         use="generate-id(preceding-sibling::FIELD_NEWPROD[1])" />

<xsl:key name="item-fields" 
         match="*[starts-with(name(), 'FIELD_')][not(self::FIELD_PRDC or self::FIELD_NEWPROD)]" 
         use="concat(generate-id(preceding-sibling::FIELD_NEWPROD[1]), '|',  generate-id(preceding-sibling::FIELD_PRDC[1]))" />

<xsl:template match="/XML">
    <xsl:copy>
        <xsl:apply-templates select="*[starts-with(name(), 'GLOBAL_')]"/>
        <xsl:apply-templates select="FIELD_NEWPROD"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="FIELD_NEWPROD">
    <LINE>
        <xsl:copy-of select="."/>
        <xsl:apply-templates select="key('line-fields', concat(generate-id(), '|', count(preceding-sibling::FIELD_PRDC)))"/>
        <xsl:apply-templates select="key('item-headers', generate-id())"/>
    </LINE>
</xsl:template>

<xsl:template match="FIELD_PRDC">
    <ITEM>
        <xsl:copy-of select="."/>
        <xsl:apply-templates select="key('item-fields', concat(generate-id(preceding-sibling::FIELD_NEWPROD[1]), '|',  generate-id()))"/>
    </ITEM>
</xsl:template>

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

When applied to the following test input:

<XML>
    <GLOBAL_DETORDERLBL>ORDER</GLOBAL_DETORDERLBL>
    <GLOBAL_DETCUSTLBL>CUST</GLOBAL_DETCUSTLBL>
    <GLOBAL_DETAANTLBL>QTY</GLOBAL_DETAANTLBL>


    <FIELD_NEWPROD>A</FIELD_NEWPROD>
    <FIELD_MANR>AA</FIELD_MANR>
    <FIELD_LENGTH1>AB</FIELD_LENGTH1>

    <FIELD_PRDC>A1</FIELD_PRDC>
    <FIELD_LENGTHH>A11</FIELD_LENGTHH>
    <FIELD_BATS>A12</FIELD_BATS>

    <FIELD_PRDC>A2</FIELD_PRDC>
    <FIELD_LENGTHH>A21</FIELD_LENGTHH>
    <FIELD_BATS>A22</FIELD_BATS>

    <FIELD_PRDC>A3</FIELD_PRDC>
    <FIELD_LENGTHH>A31</FIELD_LENGTHH>
    <FIELD_BATS>A32</FIELD_BATS>


    <FIELD_NEWPROD>B</FIELD_NEWPROD>
    <FIELD_MANR>BA</FIELD_MANR>
    <FIELD_LENGTH1>BB</FIELD_LENGTH1>

    <FIELD_PRDC>B1</FIELD_PRDC>
    <FIELD_LENGTHH>B11</FIELD_LENGTHH>
    <FIELD_BATS>B12</FIELD_BATS>

    <FIELD_PRDC>B2</FIELD_PRDC>
    <FIELD_LENGTHH>B21</FIELD_LENGTHH>
    <FIELD_BATS>B22</FIELD_BATS>
</XML>

The result is:

<?xml version="1.0" encoding="UTF-8"?>
<XML>
   <GLOBAL_DETORDERLBL>ORDER</GLOBAL_DETORDERLBL>
   <GLOBAL_DETCUSTLBL>CUST</GLOBAL_DETCUSTLBL>
   <GLOBAL_DETAANTLBL>QTY</GLOBAL_DETAANTLBL>
   <LINE>
      <FIELD_NEWPROD>A</FIELD_NEWPROD>
      <FIELD_MANR>AA</FIELD_MANR>
      <FIELD_LENGTH1>AB</FIELD_LENGTH1>
      <ITEM>
         <FIELD_PRDC>A1</FIELD_PRDC>
         <FIELD_LENGTHH>A11</FIELD_LENGTHH>
         <FIELD_BATS>A12</FIELD_BATS>
      </ITEM>
      <ITEM>
         <FIELD_PRDC>A2</FIELD_PRDC>
         <FIELD_LENGTHH>A21</FIELD_LENGTHH>
         <FIELD_BATS>A22</FIELD_BATS>
      </ITEM>
      <ITEM>
         <FIELD_PRDC>A3</FIELD_PRDC>
         <FIELD_LENGTHH>A31</FIELD_LENGTHH>
         <FIELD_BATS>A32</FIELD_BATS>
      </ITEM>
   </LINE>
   <LINE>
      <FIELD_NEWPROD>B</FIELD_NEWPROD>
      <FIELD_MANR>BA</FIELD_MANR>
      <FIELD_LENGTH1>BB</FIELD_LENGTH1>
      <ITEM>
         <FIELD_PRDC>B1</FIELD_PRDC>
         <FIELD_LENGTHH>B11</FIELD_LENGTHH>
         <FIELD_BATS>B12</FIELD_BATS>
      </ITEM>
      <ITEM>
         <FIELD_PRDC>B2</FIELD_PRDC>
         <FIELD_LENGTHH>B21</FIELD_LENGTHH>
         <FIELD_BATS>B22</FIELD_BATS>
      </ITEM>
   </LINE>
</XML>
Sign up to request clarification or add additional context in comments.

7 Comments

Thanks Michael, I will look into this solution and see if it fits my needs :) The actual data looks even worse:<br>^GLOBAL PAGELBL Page ^GLOBAL ADRES Aliplast Sp. z o.o. 20-276 Lublin ^GLOBAL INROLBILBL INROLBON BICOLORS ^GLOBAL INROL 38043 ^GLOBAL WORKCENTERLBL Workcenter
Michael, it's not working. See pastebin.com/HYsqK0bY for the data. And if I run it through xslttest.appspot.com the result is fragmented and breaks too early + missing elements. :(
@grmbl I have corrected a mistake in handling multiple <FIELD_NEWPROD> elements. Would have caught it sooner if your input example had actual data for the second occurrence..
:) take your time, Michael. I need to go offline but will check tomorrow morning. Thanks again!
@grmbl "what steps should I take if I would like to add other fields as groups?" If it were me, I would take a step towards the nearest wall and start banging my head against it... More seriously, your question is not quite clear, namely the "disregarding subgroup ITEM" part. Re more nesting, you can see the basic principle in the stylesheet above: items are grouped by the id of the "leading field". However, that is not enough when you also have "free-floating" items, so you need to add either the id of the leading field/s higher in the hierarchy or their count to get the correct grouping.
|
2

With the use of XSLT 2.0 you can use <xsl:for-each-group select="[YOUR SELECTION]" group-starting-with="[TO START THE GROUP]", see next XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="TEST">
        <xsl:copy>
            <xsl:for-each-group select="child::*" group-starting-with="FIELD_NEWPROD">
                <xsl:choose>
                    <xsl:when test="self::FIELD_NEWPROD">
                        <ITEM>
                            <xsl:for-each-group select="current-group()" group-starting-with="FIELD_PRDC">
                                <xsl:choose>
                                    <xsl:when test="self::FIELD_PRDC">
                                        <DETAIL>
                                            <xsl:apply-templates select="current-group()"/>
                                        </DETAIL>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:apply-templates select="current-group()"/>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:for-each-group>
                        </ITEM>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:apply-templates select="current-group()"/>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:for-each-group>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

When applied on this XML:

<?xml version="1.0" encoding="UTF-8"?>
<TEST>
    <GLOBAL_DETORDERLBL>ORDER</GLOBAL_DETORDERLBL>
    <GLOBAL_DETCUSTLBL>CUST</GLOBAL_DETCUSTLBL>
    <GLOBAL_DETAANTLBL>QTY</GLOBAL_DETAANTLBL>
    <GLOBAL_DETKLEURLBL>KLEUR</GLOBAL_DETKLEURLBL>
    <GLOBAL_DETCOMPLBL>COMPONENTS</GLOBAL_DETCOMPLBL>
    <GLOBAL_DETPROFLBL>PROFILE</GLOBAL_DETPROFLBL>
    <GLOBAL_PROFIEL/>
    <GLOBAL_PROFIELLBL>PROFILE:</GLOBAL_PROFIELLBL>
    <GLOBAL_CATTO>NIEUW</GLOBAL_CATTO>
    <GLOBAL_CATFR>NIEUW</GLOBAL_CATFR>
    <GLOBAL_CAT2LBL>CAT 2  :</GLOBAL_CAT2LBL>
    <GLOBAL_GROEP2/>
    <GLOBAL_GROEP1/>
    <GLOBAL_GROEPLBL>GROUP  :</GLOBAL_GROEPLBL>
    <GLOBAL_TEXT/>
    <GLOBAL_TEXTLBL>TEKST :</GLOBAL_TEXTLBL>
    <GLOBAL_ORDER15/>
    <GLOBAL_ORDER14/>
    <GLOBAL_ORDER13/>
    <GLOBAL_ORDER12/>
    <GLOBAL_ORDER11/>
    <GLOBAL_ORDER10/>
    <GLOBAL_ORDER9/>
    <GLOBAL_ORDER8/>
    <GLOBAL_ORDER7/>
    <GLOBAL_ORDER6/>
    <GLOBAL_DATE>27/03/14</GLOBAL_DATE>
    <GLOBAL_DATELBL>DATE  :</GLOBAL_DATELBL>
    <GLOBAL_ORDER5/>
    <GLOBAL_ORDER4/>
    <GLOBAL_ORDER3/>
    <GLOBAL_ORDER2/>
    <GLOBAL_ORDER1/>
    <GLOBAL_ORDERSLBL>ORDERS :</GLOBAL_ORDERSLBL>
    <GLOBAL_WORKCENTER>Insulation bicolor machine 1</GLOBAL_WORKCENTER>
    <GLOBAL_WORKCENTERLBL>Workcenter</GLOBAL_WORKCENTERLBL>
    <GLOBAL_INROL>  38043</GLOBAL_INROL>
    <GLOBAL_INROLBILBL>INROLBON BICOLORS</GLOBAL_INROLBILBL>
    <GLOBAL_ADRES></GLOBAL_ADRES>
    <GLOBAL_PAGELBL>Page</GLOBAL_PAGELBL>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP011/9016M/6.5</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>   30</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242586</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC>XIP011B</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>XIP011A</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4710</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4711</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   30</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP054</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    4</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242569</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_TEXTMFG>UWAGA DZ. HANDLOWY</FIELD_TEXTMFG>
    <FIELD_TEXTMFG>przy bikolorze dopytac Klienta czy ma wystawac profil z zewn�trz</FIELD_TEXTMFG>
    <FIELD_TEXTMFG>czy od wewn�trz konstrukcji.</FIELD_TEXTMFG>
    <FIELD_TEXTMFG>I z taka informacja do Kamila Ku�</FIELD_TEXTMFG>
    <FIELD_PRDC>XIP054B</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS>9016M</FIELD_BATS>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    4</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>XIP053A</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS>9016M</FIELD_BATS>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    4</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4722</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    8</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY/>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP721</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    1</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242570</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC>XIP721B</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS>9016M</FIELD_BATS>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>XIP021A</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS>9016M</FIELD_BATS>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4709</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4711</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP814/9016M/6.5</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    2</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242582</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC>XIP814B</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    2</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>XIP814A</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    2</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4731</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    4</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY/>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP824/9016M/6.5</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    3</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242583</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    3</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    3</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4731</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    6</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY/>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP825/9016M/6.5</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>   11</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242585</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   11</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   11</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4731</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   22</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY/>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>IP854</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    6</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242571</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    6</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    6</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4731</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>   12</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY/>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>SP011/9016M/6.5</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    1</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242580</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC>XIP011A</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>XIP011B</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4715</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4716</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_NEWPROD/>
    <FIELD_MANR>SP824</FIELD_MANR>
    <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
    <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
    <FIELD_SORN> 338940</FIELD_SORN>
    <FIELD_SQTY>    1</FIELD_SQTY>
    <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
    <FIELD_CONTAINER/>
    <FIELD_PRODORDER>       6242574</FIELD_PRODORDER>
    <FIELD_RIT>2 - 2</FIELD_RIT>
    <FIELD_CNAM>Slovakia</FIELD_CNAM>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    1</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC>P4715</FIELD_PRDC>
    <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY>    2</FIELD_QTY>
    <FIELD_NAME/>
    <FIELD_PRDC/>
    <FIELD_LENGTHH/>
    <FIELD_BATS/>
    <FIELD_STOCKSIGN/>
    <FIELD_QTY/>
    <FIELD_NAME/>
</TEST>

It produces the next output:

<?xml version="1.0" encoding="UTF-8"?>
<TEST>
    <GLOBAL_DETORDERLBL>ORDER</GLOBAL_DETORDERLBL>
    <GLOBAL_DETCUSTLBL>CUST</GLOBAL_DETCUSTLBL>
    <GLOBAL_DETAANTLBL>QTY</GLOBAL_DETAANTLBL>
    <GLOBAL_DETKLEURLBL>KLEUR</GLOBAL_DETKLEURLBL>
    <GLOBAL_DETCOMPLBL>COMPONENTS</GLOBAL_DETCOMPLBL>
    <GLOBAL_DETPROFLBL>PROFILE</GLOBAL_DETPROFLBL>
    <GLOBAL_PROFIEL/>
    <GLOBAL_PROFIELLBL>PROFILE:</GLOBAL_PROFIELLBL>
    <GLOBAL_CATTO>NIEUW</GLOBAL_CATTO>
    <GLOBAL_CATFR>NIEUW</GLOBAL_CATFR>
    <GLOBAL_CAT2LBL>CAT 2  :</GLOBAL_CAT2LBL>
    <GLOBAL_GROEP2/>
    <GLOBAL_GROEP1/>
    <GLOBAL_GROEPLBL>GROUP  :</GLOBAL_GROEPLBL>
    <GLOBAL_TEXT/>
    <GLOBAL_TEXTLBL>TEKST :</GLOBAL_TEXTLBL>
    <GLOBAL_ORDER15/>
    <GLOBAL_ORDER14/>
    <GLOBAL_ORDER13/>
    <GLOBAL_ORDER12/>
    <GLOBAL_ORDER11/>
    <GLOBAL_ORDER10/>
    <GLOBAL_ORDER9/>
    <GLOBAL_ORDER8/>
    <GLOBAL_ORDER7/>
    <GLOBAL_ORDER6/>
    <GLOBAL_DATE>27/03/14</GLOBAL_DATE>
    <GLOBAL_DATELBL>DATE  :</GLOBAL_DATELBL>
    <GLOBAL_ORDER5/>
    <GLOBAL_ORDER4/>
    <GLOBAL_ORDER3/>
    <GLOBAL_ORDER2/>
    <GLOBAL_ORDER1/>
    <GLOBAL_ORDERSLBL>ORDERS :</GLOBAL_ORDERSLBL>
    <GLOBAL_WORKCENTER>Insulation bicolor machine 1</GLOBAL_WORKCENTER>
    <GLOBAL_WORKCENTERLBL>Workcenter</GLOBAL_WORKCENTERLBL>
    <GLOBAL_INROL>  38043</GLOBAL_INROL>
    <GLOBAL_INROLBILBL>INROLBON BICOLORS</GLOBAL_INROLBILBL>
    <GLOBAL_ADRES/>
    <GLOBAL_PAGELBL>Page</GLOBAL_PAGELBL>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP011/9016M/6.5</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>   30</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242586</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC>XIP011B</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   30</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>XIP011A</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   30</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4710</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   30</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4711</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   30</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP054</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    4</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242569</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <FIELD_TEXTMFG>UWAGA DZ. HANDLOWY</FIELD_TEXTMFG>
        <FIELD_TEXTMFG>przy bikolorze dopytac Klienta czy ma wystawac profil z zewn�trz</FIELD_TEXTMFG>
        <FIELD_TEXTMFG>czy od wewn�trz konstrukcji.</FIELD_TEXTMFG>
        <FIELD_TEXTMFG>I z taka informacja do Kamila Ku�</FIELD_TEXTMFG>
        <DETAIL>
            <FIELD_PRDC>XIP054B</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS>9016M</FIELD_BATS>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    4</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>XIP053A</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS>9016M</FIELD_BATS>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    4</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4722</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    8</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY/>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP721</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    1</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242570</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC>XIP721B</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS>9016M</FIELD_BATS>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>XIP021A</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS>9016M</FIELD_BATS>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4709</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4711</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP814/9016M/6.5</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    2</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242582</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC>XIP814B</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    2</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>XIP814A</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    2</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4731</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    4</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY/>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP824/9016M/6.5</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    3</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242583</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    3</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    3</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4731</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    6</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY/>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP825/9016M/6.5</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>   11</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242585</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   11</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   11</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4731</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   22</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY/>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>IP854</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    6</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242571</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    6</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    6</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4731</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>   12</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY/>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>SP011/9016M/6.5</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    1</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242580</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC>XIP011A</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>XIP011B</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4715</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4716</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
    <ITEM>
        <FIELD_NEWPROD/>
        <FIELD_MANR>SP824</FIELD_MANR>
        <FIELD_LENGTH1>L: 6,50</FIELD_LENGTH1>
        <FIELD_NAME>Hesta s.r.o.</FIELD_NAME>
        <FIELD_SORN> 338940</FIELD_SORN>
        <FIELD_SQTY>    1</FIELD_SQTY>
        <FIELD_DELDAT>01-04-14</FIELD_DELDAT>
        <FIELD_CONTAINER/>
        <FIELD_PRODORDER>       6242574</FIELD_PRODORDER>
        <FIELD_RIT>2 - 2</FIELD_RIT>
        <FIELD_CNAM>Slovakia</FIELD_CNAM>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    1</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC>P4715</FIELD_PRDC>
            <FIELD_LENGTHH>L:6.5</FIELD_LENGTHH>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY>    2</FIELD_QTY>
            <FIELD_NAME/>
        </DETAIL>
        <DETAIL>
            <FIELD_PRDC/>
            <FIELD_LENGTHH/>
            <FIELD_BATS/>
            <FIELD_STOCKSIGN/>
            <FIELD_QTY/>
            <FIELD_NAME/>
        </DETAIL>
    </ITEM>
</TEST>

9 Comments

If the answer suits your question, please use the accept answer button (green tick beside the answer).
Hi Mark, I've tested your solution but when compiling using MSIE I get the following error: [code] The XML page cannot be displayed Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later. -------------------------------------------------------------------------------- Keyword xsl:copy may not contain xsl:for-each-group. <TEST [/code]
Does your XSLT processor understand XSLT 2.0 or only XSLT 1.0? I have tested the XSLT in Altova XMLSpy and all is working fine as long as your XSLT processor understands XSLT 2.0
Mark, it's MSIE 10.. It ought to understand :)
Browsers don't support XSLT 2.0: stackoverflow.com/questions/6282340/…
|
0

Please follow below steps

XSLT file is used for transforming data from one file to another

1)First you will have to create "XSLT" file by selecting New|File|XSLT

2)Map XML elements with XSLT..

3)Run xslt by clicking "Start XSLT Debugging".....you will get your data in your custom format.

I already have created xslt code for you.

<?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" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="XML">
      <XML>
        <GLOBAL_FIELD1>
          <xsl:value-of select="GLOBAL_FIELD1" />
        </GLOBAL_FIELD1>
        <GLOBAL_FIELD2>
          <xsl:value-of select="GLOBAL_FIELD2" />
        </GLOBAL_FIELD2>
        <GLOBAL_FIELD3>
          <xsl:value-of select="GLOBAL_FIELD3" />
        </GLOBAL_FIELD3>
        <ITEM>
          <FIELD_ITEM1>
            <xsl:value-of select="FIELD_ITEM1" />
          </FIELD_ITEM1>
          <FIELD_ITEM2>
            <xsl:value-of select="FIELD_ITEM2" />
          </FIELD_ITEM2>
          <FIELD_ITEM3>
            <xsl:value-of select="FIELD_ITEM3" />
          </FIELD_ITEM3>
          <DETAIL>
            <FIELD_DETAIL1>
              <xsl:value-of select="FIELD_DETAIL1" />
            </FIELD_DETAIL1>
            <FIELD_DETAIL2>
              <xsl:value-of select="FIELD_DETAIL2" />
            </FIELD_DETAIL2>
          </DETAIL>
        </ITEM>
        <ITEM>
          <FIELD_ITEM1>ITEM1</FIELD_ITEM1>
        </ITEM>
      </XML>
    </xsl:template>
</xsl:stylesheet>

6 Comments

Hi DanD, thanks for your answer but it appears that the fields are fixed? What I want is to genereate groups based on a tag name. So whenever FIELD_ITEM1 comes it would generate a group <ITEM> and when it finds FIELD_DETAIL1 it should create another subgroup in <ITEM> but the tag names should match automatically. It's actually a jumping algorith I need..
Something else, is there some kind of software I can do this wysiwyg?
Can you please paste exact name of elements/attribute of your XML file? I will get better idea
DanD, I answered with the real example.
The use of an Identity template would be easier here. In combination with <xsl:for-each-group>.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.