コード例 #1
0
            public XmlRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary <string, string> namedValues)
            {
                _context       = ContentRecord.DefaultInstance;
                _processor     = processor;
                _optimizations = optimizations;
                _namedValues   = namedValues;
                _elements      = new Dictionary <XmlLightElement, object>();
                _replaces      = new Dictionary <object, HttpCloneOptimizationReplace>();
                foreach (var rep in optimizations.AllItems())
                {
                    foreach (var i in rep.ReplaceItem)
                    {
                        _replaces.Add(i, rep);
                    }
                }

                _bytag = optimizations.AllItems()
                         .SelectMany(item => item.ReplaceItem.OfType <HttpCloneTag>())
                         .ToLookup(t => t.TagName);

                _xpaths = optimizations.AllItems()
                          .SelectMany(item => item.ReplaceItem.OfType <HttpCloneXPath>())
                          .ToArray();

                if (_bytag.Count > 0 || _xpaths.Length > 0)
                {
                    processor.ContextChanged     += ContextChanged;
                    processor.RewriteElement     += RewriteElement;
                    processor.RewriteXmlDocument += RewriteXmlDocument;
                }
            }
コード例 #2
0
            public RegexRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary <string, string> namedValues)
            {
                _processor     = processor;
                _optimizations = optimizations;
                _namedValues   = namedValues;

                _replaces = new Dictionary <object, HttpCloneOptimizationReplace>();
                foreach (var rep in optimizations.AllItems())
                {
                    foreach (var i in rep.ReplaceItem)
                    {
                        _replaces.Add(i, rep);
                    }
                }

                _matches = optimizations.AllItems()
                           .SelectMany(item => item.ReplaceItem.OfType <HttpCloneMatch>())
                           .ToArray();
                _expressions = _matches.Select(m => new Regex(m.Expression)).ToArray();

                if (_matches.Length > 0)
                {
                    _processor.RewriteContent += RewriteContent;
                    _processor.ContextChanged += ContextChanged;
                }
            }
コード例 #3
0
            public XmlRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary<string, string> namedValues)
            {
                _context = ContentRecord.DefaultInstance;
                _processor = processor;
                _optimizations = optimizations;
                _namedValues = namedValues;
                _elements = new Dictionary<XmlLightElement, object>();
                _replaces = new Dictionary<object, HttpCloneOptimizationReplace>();
                foreach (var rep in optimizations.AllItems())
                    foreach (var i in rep.ReplaceItem)
                        _replaces.Add(i, rep);

                _bytag = optimizations.AllItems()
                    .SelectMany(item => item.ReplaceItem.OfType<HttpCloneTag>())
                    .ToLookup(t => t.TagName);

                _xpaths = optimizations.AllItems()
                    .SelectMany(item => item.ReplaceItem.OfType<HttpCloneXPath>())
                    .ToArray();

                if (_bytag.Count > 0 || _xpaths.Length > 0)
                {
                    processor.ContextChanged += ContextChanged;
                    processor.RewriteElement += RewriteElement;
                    processor.RewriteXmlDocument += RewriteXmlDocument;
                }
            }
コード例 #4
0
            public RegexRewriter(ContentParser processor, HttpCloneOptimizations optimizations, IDictionary<string, string> namedValues)
            {
                _processor = processor;
                _optimizations = optimizations;
                _namedValues = namedValues;

                _replaces = new Dictionary<object, HttpCloneOptimizationReplace>();
                foreach (var rep in optimizations.AllItems())
                    foreach (var i in rep.ReplaceItem)
                        _replaces.Add(i, rep);

                _matches = optimizations.AllItems()
                    .SelectMany(item => item.ReplaceItem.OfType<HttpCloneMatch>())
                    .ToArray();
                _expressions = _matches.Select(m => new Regex(m.Expression)).ToArray();

                if (_matches.Length > 0)
                {
                    _processor.RewriteContent += RewriteContent;
                    _processor.ContextChanged += ContextChanged;
                }
            }