我想实现在html中返回某个选定element中xpath,所以使用while进行递归遍历,可是运行到最后一个循环后就死循环了。
代码:
 private string GetXpathOfElement(IHTMLElement element)
        {
            MessageBox.Show("1");
                while (element.parentElement != null)
                {
                    MessageBox.Show("2");
                    IHTMLElement pElement = element.parentElement;
                    int i = 0;
                    foreach (IHTMLElement cElement in (IHTMLElementCollection)pElement.children)
                    {
                        if (cElement.tagName == element.tagName)
                        {
                            if (cElement.Equals(element))
                            {
                                elementXpath = string.Format("/{0}[{1}]", cElement.tagName, i.ToString()) + elementXpath;
                            }
                            i++;
                        }
                    }
                    MessageBox.Show("3");
                    GetXpathOfElement(pElement);
                    MessageBox.Show("4");                }
                MessageBox.Show("5");
              
            return "html/"+elementXpath;
 
        }
       运行到最后一个循环是 1,5,但是之后又回到了4,然后就是死循环,为什么不是运行到5就跳出函数了呢?