private async Task CleanXml(XmlCleanerContext context) { await Task.Run(() => { foreach (var cleaner in this.Cleaners) { cleaner.CleanXml(context); if (!string.IsNullOrWhiteSpace(context.ErrorMessage)) { this.MessengerInstance.Send<DisplayApplicationStatusMessage>(new DisplayApplicationStatusMessage(context.ErrorMessage)); return; } } if (context.ParsedXml != null) { this.MessengerInstance.Send<DisplayApplicationStatusMessage>(new DisplayApplicationStatusMessage("XML parsed correctly")); } else { this.MessengerInstance.Send<DisplayApplicationStatusMessage>(new DisplayApplicationStatusMessage("Text was not able to be parsed into XML")); } }); return; }
public override void CleanXml(XmlCleanerContext context) { if (context.ParsedXml != null) { return; } try { context.ParsedXml = XElement.Parse(context.XmlToClean); context.XmlToClean = context.ParsedXml.ToString(SaveOptions.None); } catch { try { context.ParsedXml = XElement.Parse(String.Format("<AddedRoot>{0}</AddedRoot>", context.XmlToClean)); context.XmlToClean = context.ParsedXml.ToString(SaveOptions.None); } catch (Exception e) { context.ErrorMessage = "Unable to parse XML, even when surrounded with a root element. " + e.Message; } } }
public void CleanXml_EscapedNonEmptyXmlAttributeWithSeparateClosingTag_ShouldReplaceDoubleQuotes() { const string sample = "<xml attr=\"\"Test\"\" ></xml>"; const string expected = "<xml attr=\"Test\" ></xml>"; var context = new XmlCleanerContext() { XmlToClean = sample }; var sut = new VisualStudioVBScriptCleaner(); sut.CleanXml(context); Assert.AreEqual(expected, context.XmlToClean); }
async public Task<string> CleanXmlIfPossibleAsync(string xml) { if (!XmlShouldBeCleaned(xml)) return xml; var context = new XmlCleanerContext() { XmlToClean = xml }; await CleanXml(context); return context.XmlToClean; }
public void CleanXml_EscapedNonEmptyXmlAttributeSurroundedBySingleQuotes_ShouldReplaceDoubleQuotes() { const string sample = "<xml attr='Test \"\"THE\"\" thing.' />"; const string expected = "<xml attr='Test \"THE\" thing.' />"; var context = new XmlCleanerContext() { XmlToClean = sample }; var sut = new VisualStudioVBScriptCleaner(); sut.CleanXml(context); Assert.AreEqual(expected, context.XmlToClean); }
public override void CleanXml(XmlCleanerContext context) { var firstLessThanIndex = context.XmlToClean.IndexOf('<'); if (firstLessThanIndex < 0) return; var lastGreaterThanIndex = context.XmlToClean.LastIndexOf('>'); if (lastGreaterThanIndex < 0) return; context.XmlToClean = context.XmlToClean.Substring(firstLessThanIndex, lastGreaterThanIndex - firstLessThanIndex + 1); }
public override void CleanXml(XmlCleanerContext context) { var firstLessThanIndex = context.XmlToClean.IndexOf('<'); if (firstLessThanIndex < 0) { return; } var lastGreaterThanIndex = context.XmlToClean.LastIndexOf('>'); if (lastGreaterThanIndex < 0) { return; } context.XmlToClean = context.XmlToClean.Substring(firstLessThanIndex, lastGreaterThanIndex - firstLessThanIndex + 1); }
public override void CleanXml(XmlCleanerContext context) { if (context.ParsedXml != null) return; try { context.ParsedXml = XElement.Parse(context.XmlToClean); context.XmlToClean = context.ParsedXml.ToString(SaveOptions.None); } catch { try { context.ParsedXml = XElement.Parse(String.Format("<AddedRoot>{0}</AddedRoot>", context.XmlToClean)); context.XmlToClean = context.ParsedXml.ToString(SaveOptions.None); } catch (Exception e) { context.ErrorMessage = "Unable to parse XML, even when surrounded with a root element. " + e.Message; } } }
public abstract void CleanXml(XmlCleanerContext context);
public override void CleanXml(XmlCleanerContext context) { context.XmlToClean = Regex.Replace(context.XmlToClean, DOUBLE_QUOTE_REGEX, Evaluator); }
public override void CleanXml(XmlCleanerContext context) { context.XmlToClean = WebUtility.UrlDecode(context.XmlToClean); }
public override void CleanXml(XmlCleanerContext context) { }
public override void CleanXml(XmlCleanerContext context) { context.XmlToClean = context.XmlToClean.Trim(); }
public override void CleanXml(XmlCleanerContext context) { context.XmlToClean = context.XmlToClean.Replace(Environment.NewLine, string.Empty); }
public override void CleanXml(XmlCleanerContext context) { context.XmlToClean = context.XmlToClean.Replace("\\\"", "\""); }
public void CleanXml_NonEscapedEmptyXmlAttributeWithNoWhitespaceAfterWithSeparateClosingTag_ShouldNotReplaceDoubleQuotes() { const string sample = "<xml attr=\"\"></xml>"; var context = new XmlCleanerContext() { XmlToClean = sample }; var sut = new VisualStudioVBScriptCleaner(); sut.CleanXml(context); Assert.AreEqual(sample, context.XmlToClean); }
public void CleanXml_NonEscapedEmptyXmlAttribute_ShouldNotReplaceDoubleQuotes() { const string sample = "<xml attr=\"\" />"; var context = new XmlCleanerContext() { XmlToClean = sample }; var sut = new VisualStudioVBScriptCleaner(); sut.CleanXml(context); Assert.AreEqual(sample, context.XmlToClean); }