class Polygon { constructor() { this.vertex = []; } addVertext(vertex) { this.vertex.push(vertex); } closeRing() { this.vertex.push(this.vertex[0]); } } var parser, xmlDoc, PolyArray; var PolygonObj = []; var text = ` FOOTPRINT p6739 p6739/V1 p6739/V2 p6739/V3 p6739/V4 p6739/V5 p6739/V6 p6739/V7 p6739/V8 p6739/V9 p6739/V10 p6739/V11 p6739/V12 p6739/V13 p6739/V14 p6739/V15 p6739/V16 p6739/V17 p6739/V18 p6739 p6739/V1 p6739/V2 p6739/V3 p6739/V4 p6739/V5 p6739/V6 p6739/V7 p6739/V8 p6739/V9 p6739/V10 p6739/V11 p6739/V12 p6739/V13 p6739/V14 p6739/V15 p6739/V16 p6739/V17 p6739/V18 ` parser = new DOMParser(); xmlDoc = parser.parseFromString(text, "text/xml"); PolyArray = Array.from(xmlDoc.getElementsByTagName("Polygon")); PolyArray.forEach(polygon => { polyObj = new P1(); var vertexes = Array.from(polygon.children); for (var x = 1; x < vertexes.length; x++) { var vertextChildren = vertexes[x].children[1].attributes; var vertex = {}; for (var y = 0; y < 3; y++) { switch (y) { case 1: vertex.x = parseFloat(vertextChildren[y].nodeValue); break; case 2: vertex.y = parseFloat(vertextChildren[y].nodeValue); case 3: vertex.z = parseFloat(vertextChildren[y].nodeValue); } } polyObj.addVertext(vertex); } P1.push(polyObj); }); P1.forEach(polygon => { polygon.closeRing(); });