コード例 #1
0
ファイル: Main.cs プロジェクト: Cilyan/stblc
 /**
  * This function parses an XML file formatted like
  * what Twallan's STBL.exe awaits
  */
 private static int parseTwallanFormat(XElement Root, STBLWriter stblWriter)
 {
     bool awaits_key = true;
     bool warnings = false;
     string key = "";
     foreach(XElement elem in Root.Descendants()) {
         // KEY tag
         if (awaits_key) {
             if (elem.Name == "KEY") {
                 key = preprocessKey(elem.Value);
                 awaits_key = false;
             } else {
                 Console.WriteLine ("WARN: <KEY> awaited at {0}. Skipping.", ((IXmlLineInfo)elem).LineNumber);
                 warnings = true;
             }
         // STR tag
         } else {
             if (elem.Name == "STR") {
                 if (stblWriter.add(key, elem.Value) != 0) {
                     Console.WriteLine ("WARN: element at {0} is duplicate.", ((IXmlLineInfo)elem).LineNumber);
                 }
                 awaits_key = true;
             } else {
                 Console.WriteLine ("WARN: <STR> awaited at {0}. Skipping.", ((IXmlLineInfo)elem).LineNumber);
                 awaits_key = true;
                 warnings = true;
             }
         }
     }
     if (warnings) {
         return -2;
     }
     return 0;
 }