JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://www.thomasfrank.se/downloadableJS/xml2json.js"></script>
<pre id="res"></pre>

JavaScript

var xml = '<Products><ProductAttribute Cid="5" Aid="A2"><ProductCat>Вода</ProductCat><Value>минеральная</Value> </ProductAttribute><ProductAttribute Cid="5" Aid="A4"><ProductCat>Вода</ProductCat><Value>газированая</Value> </ProductAttribute><ProductAttribute Cid="4" Aid="M122"><ProductCat>Рыба</ProductCat><Value>Карась</Value></ProductAttribute></Products>';

var myJsonObject=xml2json.parser(xml),
    products = myJsonObject.products.productattribute,
    arr = [],
    values = {},
    catNames = {};

products.forEach(function(prodObj) {
  var cid = prodObj.cid;
  if (!catNames[cid]) catNames[cid] = prodObj.productcat;
    
  if (!values[cid]) values[cid] = [];
  values[cid].push({
      aid: prodObj.aid,
      value: prodObj.value
  });
});

for(var cid in values) {
    arr.push({
        Cid: cid,
        ProductCat: catNames[cid],
        values: values[cid]
    });
}

var result = {'Products': arr};

res.innerHTML = JSON.stringify(result,'',2);