Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c在webbrowser控件中折叠已加载xml的所有元素#_C#_Xml_Winforms_C# 4.0_Webbrowser Control - Fatal编程技术网

C# 使用c在webbrowser控件中折叠已加载xml的所有元素#

C# 使用c在webbrowser控件中折叠已加载xml的所有元素#,c#,xml,winforms,c#-4.0,webbrowser-control,C#,Xml,Winforms,C# 4.0,Webbrowser Control,我使用System.Windows.Forms.WebBrowser以突出显示的语法和易于遍历的格式显示XML。每当我将XML加载到控件中时,我都希望所有元素都折叠起来,这可能吗?这是由DocumentCompleted事件处理程序触发的 这是一个有助于java脚本注入的有用链接: 我使用了以下代码 private void CollapseExpandDocument(object sender, WebBrowserDocumentCompletedEventArgs e)

我使用System.Windows.Forms.WebBrowser以突出显示的语法和易于遍历的格式显示XML。每当我将XML加载到控件中时,我都希望所有元素都折叠起来,这可能吗?

这是由DocumentCompleted事件处理程序触发的

这是一个有助于java脚本注入的有用链接:

我使用了以下代码

    private void CollapseExpandDocument(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (sender == null)
        {
            return;
        }

        try
        {
            WebBrowser me = (WebBrowser) sender;
            HtmlElement head = me.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = me.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
            string func = @"
                function collapseDoc() 
                {
                    var className = 'b';
                    var hasClassName = new RegExp('(?:^|\\s)' + className + '(?:$|\\s)');
                    var allElements = document.getElementsByTagName('a');
                    var element;
                    for (var i = 0; (element = allElements[i]) != null; i++) 
                    {
                        var elementClass = element.className;
                        if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
                            ch(element.parentElement.parentElement);
                    }
                }";
            element.text = func;
            head.AppendChild(scriptEl);
            me.Document.InvokeScript("collapseDoc");
        }
        catch 
        { 
            //not interested in knowing if the collapse/expand failed...
        }
    }