public DataTable SelectData(byte[] dataBytes = null)
        {
            XmlSelection selectionFromConfituration = getXmlSelection();
            DataTable    table = getDataTableGeneratedFromXPath(selectionFromConfituration);

            return(table);
        }
        DataTable getDataTableGeneratedFromXPath(XmlSelection xmlSelection)
        {
            XElement      rootElement = new XElement("Data");
            List <string> keys        = _inputDocument.XPathSelectElements(xmlSelection.selectionKey).Select(x => x.Value).ToList();

            foreach (XElement productElement in _inputDocument.XPathSelectElements(xmlSelection.Context))
            {
                if (!keys.Contains(productElement.Value))
                {
                    continue;
                }
                XElement selectionElement = new XElement(productElement.Name);
                foreach (var entry in xmlSelection.ColumnFromToNames)
                {
                    createStructuredXmlGroupedByEntrys(productElement, entry, selectionElement);
                }
                rootElement.Add(selectionElement);
            }

            return(createDataTableFromMemoryStream(rootElement));
        }