public static void CopyFile(SliceInfo sliceInfo, SDLXLIFFSliceOrChange form) { try { String file = sliceInfo.File; XmlDocument xDoc = new XmlDocument(); xDoc.PreserveWhitespace = true; xDoc.Load(file); String xmlEncoding = "utf-8"; try { if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) { // Get the encoding declaration. XmlDeclaration decl = (XmlDeclaration)xDoc.FirstChild; xmlEncoding = decl.Encoding; } } catch (Exception ex) { logger.Error(ex.Message, ex); } XmlNodeList fileList = xDoc.DocumentElement.GetElementsByTagName("file"); foreach (XmlElement fileElement in fileList.OfType <XmlElement>()) { XmlElement bodyElement = (XmlElement)(fileElement.GetElementsByTagName("body")[0]); XmlNodeList groupElements = bodyElement.GetElementsByTagName("group"); foreach (var groupElement in groupElements.OfType <XmlElement>()) { //look in segments XmlNodeList transUnits = ((XmlElement)groupElement).GetElementsByTagName("trans-unit"); foreach (var transUnit in transUnits.OfType <XmlElement>()) { CopyInTransUnit(sliceInfo, transUnit); } transUnits = null; } //look in segments XmlNodeList transUnitsInBody = ((XmlElement)bodyElement).ChildNodes; //.GetElementsByTagName("trans-unit"); foreach (var transUnit in transUnitsInBody.OfType <XmlElement>()) { if (((XmlNode)transUnit).Name != "trans-unit") { continue; } CopyInTransUnit(sliceInfo, transUnit); } transUnitsInBody = null; bodyElement = null; groupElements = null; } fileList = null; Encoding encoding = new UTF8Encoding(); if (!String.IsNullOrEmpty(xmlEncoding)) { encoding = Encoding.GetEncoding(xmlEncoding); } using (var writer = new XmlTextWriter(file, encoding)) { //writer.Formatting = Formatting.None; xDoc.Save(writer); } xDoc = null; form.StepProcess("Source segments from file: " + Path.GetFileName(sliceInfo.File) + " are copied."); } catch (Exception ex) { logger.Error(ex.Message, ex); } }
public static void DoReplaceInFile(string file, ReplaceSettings settings, SDLXLIFFSliceOrChange sdlxliffSliceOrChange) { try { sdlxliffSliceOrChange.StepProcess("Replaceing in file: " + file + "..."); String fileContent = String.Empty; using (StreamReader sr = new StreamReader(file)) { fileContent = sr.ReadToEnd(); } fileContent = Regex.Replace(fileContent, "\t", ""); using (StreamWriter sw = new StreamWriter(file, false)) { sw.Write(fileContent); } XmlDocument xDoc = new XmlDocument(); xDoc.PreserveWhitespace = true; xDoc.Load(file); String xmlEncoding = "utf-8"; try { if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) { // Get the encoding declaration. XmlDeclaration decl = (XmlDeclaration)xDoc.FirstChild; xmlEncoding = decl.Encoding; } } catch (Exception ex) { logger.Error(ex.Message, ex); } XmlNodeList fileList = xDoc.DocumentElement.GetElementsByTagName("file"); foreach (XmlElement fileElement in fileList.OfType <XmlElement>()) { XmlElement bodyElement = (XmlElement)(fileElement.GetElementsByTagName("body")[0]); XmlNodeList groupElements = bodyElement.GetElementsByTagName("group"); foreach (var groupElement in groupElements.OfType <XmlElement>()) { //look in segments XmlNodeList transUnits = ((XmlElement)groupElement).GetElementsByTagName("trans-unit"); foreach (XmlElement transUnit in transUnits.OfType <XmlElement>()) { XmlNodeList source = transUnit.GetElementsByTagName("source"); if (source.Count > 0) //in mrk, g si innertext { ReplaceAllChildsValue((XmlElement)source[0], settings); } source = null; XmlNodeList segSource = transUnit.GetElementsByTagName("seg-source"); if (segSource.Count > 0) //in mrk, g si innertext { ReplaceAllChildsValue((XmlElement)segSource[0], settings); } segSource = null; XmlNodeList target = transUnit.GetElementsByTagName("target"); if (target.Count > 0) //in mrk, g si innertext { ReplaceAllChildsValue((XmlElement)target[0], settings, false); } target = null; } } //look in segments not located in groups XmlNodeList transUnitsInBody = bodyElement.ChildNodes; //.GetElementsByTagName("trans-unit"); foreach (XmlElement transUnit in transUnitsInBody.OfType <XmlElement>()) { if (transUnit.Name != "trans-unit") { continue; } XmlNodeList source = transUnit.GetElementsByTagName("source"); if (source.Count > 0) //in mrk, g si innertext { ReplaceAllChildsValue((XmlElement)source[0], settings); } source = null; XmlNodeList segSource = transUnit.GetElementsByTagName("seg-source"); if (segSource.Count > 0) //in mrk, g si innertext { ReplaceAllChildsValue((XmlElement)segSource[0], settings); } segSource = null; XmlNodeList target = transUnit.GetElementsByTagName("target"); if (target.Count > 0) //in mrk, g si innertext { ReplaceAllChildsValue((XmlElement)target[0], settings, false); } target = null; } bodyElement = null; groupElements = null; transUnitsInBody = null; } Encoding encoding = new UTF8Encoding(); if (!String.IsNullOrEmpty(xmlEncoding)) { encoding = Encoding.GetEncoding(xmlEncoding); } using (var writer = new XmlTextWriter(file, encoding)) { ////writer.Formatting = Formatting.None; xDoc.Save(writer); } fileContent = String.Empty; using (StreamReader sr = new StreamReader(file)) { fileContent = sr.ReadToEnd(); } fileContent = Regex.Replace(fileContent, "", "\t"); using (StreamWriter sw = new StreamWriter(file, false)) { sw.Write(fileContent); } xDoc = null; fileList = null; sdlxliffSliceOrChange.StepProcess("All information replaced in file: " + file + "."); } catch (Exception ex) { logger.Error(ex.Message, ex); } }
public static void CopyFile(SliceInfo sliceInfo, SDLXLIFFSliceOrChange form) { try { var file = sliceInfo.File; var xDoc = new XmlDocument { PreserveWhitespace = true }; xDoc.Load(file); var xmlEncoding = "utf-8"; if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) { // Get the encoding declaration. var decl = (XmlDeclaration)xDoc.FirstChild; xmlEncoding = decl.Encoding; } var fileList = xDoc.DocumentElement?.GetElementsByTagName("file"); if (fileList != null) { foreach (var fileElement in fileList.OfType <XmlElement>()) { var bodyElement = (XmlElement)(fileElement.GetElementsByTagName("body")[0]); var groupElements = bodyElement.GetElementsByTagName("group"); foreach (var groupElement in groupElements.OfType <XmlElement>()) { //look in segments var transUnits = groupElement.GetElementsByTagName("trans-unit"); foreach (var transUnit in transUnits.OfType <XmlElement>()) { CopyInTransUnit(sliceInfo, transUnit); } } //look in segments var transUnitsInBody = bodyElement.ChildNodes; foreach (var transUnit in transUnitsInBody.OfType <XmlElement>()) { if (transUnit.Name != "trans-unit") { continue; } CopyInTransUnit(sliceInfo, transUnit); } } } Encoding encoding = new UTF8Encoding(); if (!string.IsNullOrEmpty(xmlEncoding)) { encoding = Encoding.GetEncoding(xmlEncoding); } using (var writer = new XmlTextWriter(file, encoding)) { xDoc.Save(writer); } form.StepProcess("Source segments from file: " + Path.GetFileName(sliceInfo.File) + " are copied."); } catch (Exception ex) { _logger.Error($"{MethodBase.GetCurrentMethod().Name} \n {ex}"); } }
public UpdateManager(SDLXLIFFSliceOrChange sdlxliffSliceOrChange) { _sdlxliffSliceOrChange = sdlxliffSliceOrChange; }
public static void DoReplaceInFile(string file, ReplaceSettings settings, SDLXLIFFSliceOrChange sdlxliffSliceOrChange) { try { sdlxliffSliceOrChange.StepProcess("Replaceing in file: " + file + "..."); string fileContent; using (var sr = new StreamReader(file)) { fileContent = sr.ReadToEnd(); } fileContent = Regex.Replace(fileContent, "\t", ""); using (var sw = new StreamWriter(file, false)) { sw.Write(fileContent); } var xDoc = new XmlDocument { PreserveWhitespace = true }; xDoc.Load(file); var xmlEncoding = "utf-8"; if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) { // Get the encoding declaration. var decl = (XmlDeclaration)xDoc.FirstChild; xmlEncoding = decl.Encoding; } var fileList = xDoc.DocumentElement?.GetElementsByTagName("file"); if (fileList != null) { ParseFileElements(fileList, settings); } Encoding encoding = new UTF8Encoding(); if (!string.IsNullOrEmpty(xmlEncoding)) { encoding = Encoding.GetEncoding(xmlEncoding); } using (var writer = new XmlTextWriter(file, encoding)) { xDoc.Save(writer); } using (var sr = new StreamReader(file)) { fileContent = sr.ReadToEnd(); } fileContent = Regex.Replace(fileContent, "", "\t"); using (var sw = new StreamWriter(file, false)) { sw.Write(fileContent); } sdlxliffSliceOrChange.StepProcess("All information replaced in file: " + file + "."); } catch (Exception ex) { _logger.Error($"{MethodBase.GetCurrentMethod().Name} \n {ex}"); } }