using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public static void Main()
XElement xRecord= XElement.Parse(@"<record>
<field name=""publish_GB"">
<value language=""en_GB"">Women's Timberland® Authentics Roll-Top Boot</value>
<field name=""shortdescription"">
<value language=""en_GB""></value>
<field name=""longdescription"">
<value language=""en_GB"">Time to be a little daring and dynamic in your choice of footwear. This premium nubuck leather women's boot is one plucky piece of footwear worth shouting about. Featuring all the best in Timberland® quality and comfort, you've got great grip underfoot, superb comfort with the Anti-Fatigue footbed, and a shaft made of sumptuous suede. Roll up or down as you wish. Down is the more adventurous option where you can show off the wacky watercolour print.</value>
<field name=""CATEGORY"">
<value language=""en_GB"">Footwear</value>
<field name=""CATEGORY_TYPE"">
<value language=""en_GB"">Boots</value>
<value language=""en_GB"">Vintage Indigo Nubuck With Watercolor Print</value>
<field name=""COLOR_FAMILY"">
<value language=""en_GB"">Blue</value>
<field name=""DEPARTMENT"">
<value language=""en_GB"">Ladies</value>
<field name=""PRODUCT_GENDER"">
<value language=""en_GB"">WOMEN</value>
<field name=""PRODUCT_STYLE"">
<value language=""en_GB"">Trainers</value>
<field name=""SIZE_CONTEXT"">
<value language=""en_GB"">WOMENS_FOOTWEAR</value>
<value currency=""GBP"">115.00000</value>
<value>http://s7d2.scene7.com/is/image/TimberlandEU/A14B7420-hero?$PLP-IMAGE$</value>
<value>http://s7d2.scene7.com/is/image/TimberlandEU/A14B7420-hero?$PLP-SMALL-IMAGE$</value>
<value>http://images.timberland.com/is/image/TimberlandEU/A14B7420-alt1?$PLP-IMAGE$</value>
<value>http://images.timberland.com/is/image/TimberlandEU/A14B7420-alt1?$PLP-SMALL-IMAGE$</value>
<value language=""en_GB"">5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 055</value>
<value language=""en_GB"">5.5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 060</value>
<value language=""en_GB"">6</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 065</value>
<value language=""en_GB"">6.5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 070</value>
<value language=""en_GB"">7</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 075</value>
<value language=""en_GB"">7.5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 080</value>
<value language=""en_GB"">8</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 085</value>
<value language=""en_GB"">8.5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 090</value>
<value language=""en_GB"">9</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 095</value>
<value language=""en_GB"">9.5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 100</value>
<value language=""en_GB"">10.5</value>
<price ref=""GBP"">115.0</price>
<value>CA14B7 W 110</value>
<value language=""en_GB"">5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:055:W:1:</value>
<value language=""en_GB"">5.5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:060:W:1:</value>
<value language=""en_GB"">6</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:065:W:1:</value>
<value language=""en_GB"">6.5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:070:W:1:</value>
<value language=""en_GB"">7</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:075:W:1:</value>
<value language=""en_GB"">7.5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:080:W:1:</value>
<value language=""en_GB"">8</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:085:W:1:</value>
<value language=""en_GB"">8.5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:090:W:1:</value>
<value language=""en_GB"">9</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:095:W:1:</value>
<value language=""en_GB"">9.5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:100:W:1:</value>
<value language=""en_GB"">10.5</value>
<price ref=""GBP"">115.0</price>
<value>TB:0A14B7:432:110:W:1:</value>
<category uniqueid=""SC_UK_WOMEN"">
<value language=""en_GB"">Women</value>
<category uniqueid=""SC_UK_WOMEN"">
<value language=""en_GB"">Women</value>
<category uniqueid=""SC_UK_WOMEN-FTW"">
<value language=""en_GB"">Footwear</value>
<category uniqueid=""SC_UK_WOMEN"">
<value language=""en_GB"">Women</value>
<category uniqueid=""SC_UK_WOMEN-FTW"">
<value language=""en_GB"">Footwear</value>
<category uniqueid=""SC_UK_WOMEN-FTW-SIXINCH"">
<value language=""en_GB"">The Original 6-Inch Boot</value>
<category uniqueid=""SC_UK_WOMEN"">
<value language=""en_GB"">Women</value>
<category uniqueid=""SC_UK_WOMEN-FTW"">
<value language=""en_GB"">Footwear</value>
<category uniqueid=""SC_UK_WOMEN-FTW-BOOTS"">
<value language=""en_GB"">Boots</value>
<category uniqueid=""SC_UK_WOMEN"">
<value language=""en_GB"">Women</value>
<category uniqueid=""SC_UK_WOMEN-FTW"">
<value language=""en_GB"">Footwear</value>
<category uniqueid=""SC_UK_WOMEN-FTW-BOOTS"">
<value language=""en_GB"">Boots</value>
<category uniqueid=""SC_UK_WOMEN-FTW-BOOTS-CLASSICS"">
<value language=""en_GB"">Classic</value>
<category uniqueid=""WEBCAT"">WEBCAT</category>
<category uniqueid=""shorts"">Shorts</category>
<category uniqueid=""WEBSUBCAT"">WEBSUBCAT</category>
<category uniqueid=""athletic"">Athletic</category>
<category uniqueid=""WEBACTIVITY"">WEBACTIVITY</category>
<category uniqueid=""rockclimbing"">Rock Climbing</category>
<category uniqueid=""WEBACTIVITY"">WEBACTIVITY</category>
<category uniqueid=""hiking"">Hiking</category>
<category uniqueid=""WEBACTIVITY"">WEBACTIVITY</category>
<category uniqueid=""trekking"">Trekking</category>
<category uniqueid=""WEBCOLLECTION"">WEBCOLLECTION</category>
<category uniqueid=""traverse"">Traverse</category>
<category uniqueid=""OTHER"">OTHER</category>
<category uniqueid=""cresta89nylon11elast"">Cresta—89% nylon, 11% elastane. Lightweight, breathable, stretchy fabric with a smooth hand</category>
<category uniqueid=""WEBMATERIALS"">WEBMATERIALS</category>
<category uniqueid=""nylon"">Nylon</category>
XElement xTransformedElementFields = new XElement("fields");
XElement prodSku = new XElement("value");
List<string> refcode = new List<string>();
string dataImg = string.Empty;
foreach (XElement xItem in xRecord.Element("fields").Elements("field"))
switch (xItem.Attribute("name").Value.ToLower())
switch (xItem.Attribute("name").Value.ToLower())
dataImg = xItem.Element("values").Element("value").Value;
xTransformedElementFields.Add(xItem);
var listCat = new List<string>();
if(xRecord.Elements("categories").Any()){
var cat = xRecord.Elements("categories").Descendants("categorytree");
var firstCat = c.Descendants("category").Distinct().First();
Console.WriteLine(firstCat.Value);
listCat.Add(firstCat.Value);
xTransformedElementFields.Add(new XElement("field",
new XAttribute("name", "FSM_ParentCategory"),
listCat.Select(c=> c).Distinct().ToList().Select(s=>
new XElement("value",new XCData("FSM_"+ s))))));
xTransformedElementFields.Add(new XElement("field",
new XAttribute("name", "FSM_DATA_IMAGE"),
new XElement("value",dataImg))));
Console.WriteLine(xTransformedElementFields);