Beispiel #1
0
        /// <summary>
        /// Convert XML to SVC from file table by table
        /// </summary>
        /// <param name="xmlfilepath">xml file path</param>
        /// <param name="csvpath">csv path</param>
        /// <param name="datatag">Table Name</param>
        /// <param name="arrange">Element or Attribute</param>
        /// <param name="rdelimit">Row separater</param>
        /// <param name="cdelimit">Column separater</param>
        public static void Convert(string xmlfilepath, string csvpath, string datatag,
                                   DataArrange arrange,
                                   RowDelimit rdelimit, ColumnDelimit cdelimit)
        {
            try
            {
                var builder = new StringBuilder();

                var doc = XDocument.Load(xmlfilepath);
                FetchRowSeparater(rdelimit, out var rowSeparater);

                FetchColumnSeparater(cdelimit, out var columnseparater);

                foreach (var data in doc.Descendants(datatag))
                {
                    if (arrange == DataArrange.Element)
                    {
                        foreach (var xElement in data.Elements())
                        {
                            builder.Append(xElement.Value);
                            builder.Append(columnseparater);
                        }
                    }
                    else
                    {
                        foreach (var xAttribute in data.Attributes())
                        {
                            builder.Append(xAttribute.Value);
                            builder.Append(columnseparater);
                        }
                    }

                    // Remove the last Columnseparater
                    builder.Remove(builder.Length - 1, 1);
                    builder.Append(rowSeparater);
                }

                File.AppendAllText(csvpath, builder.ToString());
            }
            catch (Exception exception)
            {
                throw new Exception("Convert fail", exception);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Convert XML to SVC By batch
        /// </summary>
        /// <param name="dataTable">Staging table</param>
        /// <param name="arrange"></param>
        /// <param name="rdelimit">Row separater</param>
        /// <param name="cdelimit">Column separater</param>
        public static void Convert(DataTable dataTable, DataArrange arrange, RowDelimit rdelimit,
                                   ColumnDelimit cdelimit)
        {
            try
            {
                // select SchemaLevel from [dbo].[ProductSchemaInfo]
                var dbLevel = "77";

                foreach (DataRow data in dataTable.Rows)
                {
                    var  xmlString = data["row_data"].ToString();
                    long timeStamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
                    Convert(xmlString, rdelimit, cdelimit, dbLevel, timeStamp.ToString());
                }
            }
            catch (Exception exception)
            {
                throw new Exception("Convert fail", exception);
            }
        }