2

我正在使用 HTMLAgilityPack,并且我正在使用标准操作过程来加载文档并选择一个节点。然而,当我去查看节点时,所有的 aspx 控件都是小写的。有没有办法以正确的方式获取它例如,当我查看<asp:RequiredFieldValidator它返回为<asp:requiredfieldvalidator. 这不起作用,因为我正在大规模更新我的控件。

        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();

        doc.Load(@"C:\my.ascx");
        HtmlNodeCollection node_collection = doc.DocumentNode.SelectNodes("//div");
foreach (HtmlNode node in node_collection)
        {
           templateString = node.InnerHtml; //lower case happens here.....
        }

有人吗?

4

2 回答 2

5

您只需将 true 设置为OptionOutputOriginalCasebeforeLoad

var doc = new HtmlAgilityPack.HtmlDocument();
doc.OptionOutputOriginalCase = true;

doc.LoadHtml("<html><asp:RequiredFieldValidator></asp:RequiredFieldValidator></html>");

var html = doc.DocumentNode.InnerHtml;
于 2013-09-03T17:30:03.010 回答
0

尝试将您的代码更改为

var doc = new HtmlAgilityPack.HtmlDocument();
doc.OptionOutputOriginalCase = true;
doc.LoadHtml("<html><asp:Content ID='Content1' ContentPlaceHolderID='head'     runat='Server'/></html>");
var html = doc.DocumentNode.InnerHtml;
于 2016-01-21T16:10:30.953 回答