Ejemplo n.º 1
0
		private ContentCleanerOperations PrepareOptions(ContentCleanerOperations options)
		{
			var _options = options;
			if (_options == ContentCleanerOperations.Undefined) _options = Options;
			if (_options == ContentCleanerOperations.Undefined) _options = ContentCleanerOperations.Default;
			return _options;
		}
Ejemplo n.º 2
0
		/// <summary>
		/// Выполнить все очистки
		/// </summary>
		/// <param name="xml"></param>
		/// <param name="baseurl">базовый адрес</param>
		/// <param name="options"></param>
		/// <returns></returns>
		public XElement Clean(XElement xml, string baseurl = null, ContentCleanerOperations options = ContentCleanerOperations.Undefined)
		{
			var _options = PrepareOptions(options);

			if (_options.HasFlag(ContentCleanerOperations.RemoveBadTags))
			{
				RemoveBadTags(xml);
			}
			if (_options.HasFlag(ContentCleanerOperations.RemoveBadAttributes))
			{
				RemoveBadAttributes(xml);
			}
			if (_options.HasFlag(ContentCleanerOperations.RewriteTables))
			{
				RewriteTables(xml);
			}
			if (!string.IsNullOrWhiteSpace(baseurl)) {
				var baseuri = new Uri(baseurl);
				if (_options.HasFlag(ContentCleanerOperations.FixImageUrls))
				{
					FixImageUrls(xml, baseuri);
				}
				if (_options.HasFlag(ContentCleanerOperations.FixHrefUrls))
				{
					FixHrefUrls(xml, baseuri);
				}
			}
			if (_options.HasFlag(ContentCleanerOperations.SetupPositionClasses))
			{
				SetupPositionClasses(xml);
			}
			return xml;
		}