Exemple #1
0
    public void DownloadFromSheet(string xmlPath = null)
    {
        string xmlSavePath = "";

        if (string.IsNullOrEmpty(xmlPath))
        {
            xmlSavePath = Setting.Config.XmlSavePath;
        }
        if (string.IsNullOrEmpty(xmlSavePath))
        {
            xmlSavePath = xmlPath;
        }
        if (string.IsNullOrEmpty(xmlSavePath))
        {
            Console.WriteLine("xml path is null");
            return;
        }

        System.IO.Directory.CreateDirectory(new FileInfo(xmlPath).Directory.FullName);
        System.IO.Directory.CreateDirectory(new FileInfo(Setting.Config.CSVSavePath).Directory.FullName);
        // 생성할 XML 파일 경로와 이름, 인코딩 방식을 설정합니다.
        XmlTextWriter textWriter = new XmlTextWriter(xmlSavePath, Encoding.UTF8);

        // 들여쓰기 설정
        textWriter.Formatting = System.Xml.Formatting.Indented;
        // 문서에 쓰기를 시작합니다.
        textWriter.WriteStartDocument();
        textWriter.WriteStartElement("base");
        textWriter.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
        textWriter.WriteAttributeString("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
        textWriter.WriteAttributeString("type", "string");
        textWriter.WriteStartElement("tags");
        textWriter.WriteStartElement("tag");
        textWriter.WriteAttributeString("language", "한국어");
        textWriter.WriteEndElement();
        textWriter.WriteEndElement();
        textWriter.WriteStartElement("strings");
        var csv = DriveManager.DownloadCSV("1oY5F5P-tMBj1-kryB5gR4gS4T5KrlqmDc-tHQBrQBDo");

        System.IO.File.WriteAllText(Setting.Config.CSVSavePath, csv);
        var splitnl = csv.Split('\n');

        using (var reader = new StreamReader(Setting.Config.CSVSavePath))
        {
            using (var td = new CsvReader(reader, CultureInfo.InvariantCulture))
            {
                var records = td.GetRecords <TranslateData>();
                foreach (var record in records)
                {
                    textWriter.WriteStartElement("string");
                    textWriter.WriteAttributeString("id", record.Id);
                    var translateText = record.Translate;
                    translateText = translateText.Replace("\\n", "\n");
                    textWriter.WriteAttributeString("text", translateText);
                    textWriter.WriteEndElement();
                }
            }
        }
        textWriter.WriteEndElement();
        textWriter.WriteEndElement();
        textWriter.WriteEndDocument();
        textWriter.Close();
    }