private void Parse(Compiler c)
        {
            if (c.Input.NamespaceURI != Compiler.XsltNamespace)
            {
                content = c.CompileTemplateContent();
                return;
            }

            if (c.Input.MoveToFirstChild())
            {
                bool           alldone      = true;
                XPathNavigator contentStart = c.Input.Clone();
                bool           shouldMove   = false;
                do
                {
                    if (shouldMove)
                    {
                        shouldMove = false;
                        contentStart.MoveTo(c.Input);
                    }
                    if (c.Input.NodeType == XPathNodeType.Text)
                    {
                        alldone = false;
                        break;
                    }

                    if (c.Input.NodeType != XPathNodeType.Element)
                    {
                        continue;
                    }
                    if (c.Input.NamespaceURI != Compiler.XsltNamespace)
                    {
                        alldone = false;
                        break;
                    }
                    if (c.Input.LocalName != "param")
                    {
                        alldone = false;
                        break;
                    }

                    if (this.parameters == null)
                    {
                        this.parameters = new ArrayList();
                    }

                    parameters.Add(new XslLocalParam(c));
                    shouldMove = true;
                }while (c.Input.MoveToNext());
                if (!alldone)
                {
                    c.Input.MoveTo(contentStart);
                    content = c.CompileTemplateContent();
                }
                c.Input.MoveToParent();
            }
        }
Exemplo n.º 2
0
        private void Parse(Compiler c)
        {
            if (c.Input.NamespaceURI != "http://www.w3.org/1999/XSL/Transform")
            {
                this.content = c.CompileTemplateContent();
                return;
            }
            if (c.Input.MoveToFirstChild())
            {
                bool           flag           = true;
                XPathNavigator xpathNavigator = c.Input.Clone();
                bool           flag2          = false;
                for (;;)
                {
                    if (flag2)
                    {
                        flag2 = false;
                        xpathNavigator.MoveTo(c.Input);
                    }
                    if (c.Input.NodeType == XPathNodeType.Text)
                    {
                        break;
                    }
                    if (c.Input.NodeType == XPathNodeType.Element)
                    {
                        if (c.Input.NamespaceURI != "http://www.w3.org/1999/XSL/Transform")
                        {
                            goto Block_6;
                        }
                        if (c.Input.LocalName != "param")
                        {
                            goto Block_7;
                        }
                        if (this.parameters == null)
                        {
                            this.parameters = new ArrayList();
                        }
                        this.parameters.Add(new XslLocalParam(c));
                        flag2 = true;
                    }
                    if (!c.Input.MoveToNext())
                    {
                        goto IL_106;
                    }
                }
                flag = false;
                goto IL_106;
Block_6:
                flag = false;
                goto IL_106;
Block_7:
                flag = false;
IL_106:
                if (!flag)
                {
                    c.Input.MoveTo(xpathNavigator);
                    this.content = c.CompileTemplateContent();
                }
                c.Input.MoveToParent();
            }
        }
Exemplo n.º 3
0
		private void Parse (Compiler c) {
			if (c.Input.NamespaceURI != Compiler.XsltNamespace) {
				content = c.CompileTemplateContent ();
				return;
			}

			if (c.Input.MoveToFirstChild ()) {
				bool alldone = true;
				XPathNavigator contentStart = c.Input.Clone ();
				bool shouldMove = false;
				do {
					if (shouldMove) {
						shouldMove = false;
						contentStart.MoveTo (c.Input);
					}
					if (c.Input.NodeType == XPathNodeType.Text)
						{ alldone = false; break; }
					
					if (c.Input.NodeType != XPathNodeType.Element)
						continue;
					if (c.Input.NamespaceURI != Compiler.XsltNamespace)
						{ alldone = false; break; }
					if (c.Input.LocalName != "param")
						{ alldone = false; break; }
					
					if (this.parameters == null)
						this.parameters = new ArrayList ();
					
					parameters.Add (new XslLocalParam (c));
					shouldMove = true;
				} while (c.Input.MoveToNext ());
				if (!alldone) {
					c.Input.MoveTo (contentStart);
					content = c.CompileTemplateContent ();
				}
				c.Input.MoveToParent ();
			}
		}