public SisulizerProject(string filename, string language) { var importProject = new XmlDocument(); importProject.Load(filename); // iterate sources foreach (XmlElement rowNode in importProject.SelectNodes("//document/source/node/node/row")) { var context = GetContextOfNode(rowNode); foreach (XmlElement langNode in rowNode.SelectNodes($"lang[@id='{language}']")) { var langRow = new LangRow { Id = langNode.Attributes.GetValueOrDefault("id"), Date = langNode.Attributes.GetValueOrDefault("date"), Status = langNode.Attributes.GetValueOrDefault("status"), Content = langNode.InnerText, Invalidated = langNode.Attributes.GetValueOrDefault("invalidated") == "1", }; this.content.Add(context, langRow); } ////Console.WriteLine(context); } }
private static void UpdateNode(XmlNode xmlNode, LangRow langRow, ILogger logger) { ////var langRowDate = DateTime.ParseExact(langRow.Date, "yyyyMMddhhmmss", CultureInfo.InvariantCulture); ////var sourceDate = DateTime.ParseExact(xmlNode.Attributes["date"].Value, "yyyyMMddhhmmss", CultureInfo.InvariantCulture); xmlNode.SetOrUpdateAttribute("date", langRow.Date, logger); xmlNode.SetOrUpdateAttribute("status", langRow.Status, logger); xmlNode.SetOrUpdateAttribute("invalidated", langRow.Invalidated ? "1" : "", logger); if (xmlNode.InnerText != langRow.Content) { logger?.Update("content", xmlNode.InnerText, langRow.Content); xmlNode.InnerText = langRow.Content; } }