System.Xml.Xsl.Xslt.Stylesheet.AddTemplateMatch C# (CSharp) Method

AddTemplateMatch() public method

public AddTemplateMatch ( Template template, QilLoop filter ) : void
template Template
filter System.Xml.Xsl.Qil.QilLoop
return void
        public void AddTemplateMatch(Template template, QilLoop filter) {
            List<TemplateMatch> matchesForMode;
            if (!TemplateMatches.TryGetValue(template.Mode, out matchesForMode)) {
                matchesForMode = TemplateMatches[template.Mode] = new List<TemplateMatch>();
            }
            matchesForMode.Add(new TemplateMatch(template, filter));
        }

Usage Example

Exemplo n.º 1
0
        // ------------- CompileAndSortMatchPatterns() -------------

        private void CompileAndSortMatches(Stylesheet sheet)
        {
            Debug.Assert(sheet.TemplateMatches.Count == 0);

            foreach (Template template in sheet.Templates)
            {
                if (template.Match != null)
                {
                    EnterScope(template);
                    QilNode result = CompileMatchPattern(template.Match);
                    if (result.NodeType == QilNodeType.Sequence)
                    {
                        QilList filters = (QilList)result;
                        for (int idx = 0; idx < filters.Count; idx++)
                        {
                            sheet.AddTemplateMatch(template, (QilLoop)filters[idx]);
                        }
                    }
                    else
                    {
                        sheet.AddTemplateMatch(template, (QilLoop)result);
                    }
                    ExitScope();
                }
            }

            sheet.SortTemplateMatches();

            foreach (Stylesheet import in sheet.Imports)
            {
                CompileAndSortMatches(import);
            }
        }