C# htmlagilitypack Node.InnerHTML не регистр правильно, как вытащить регистр правильно

Я использую 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.....
        }

Кто-нибудь?

2 ответа

Решение

Все, что вам нужно, это установить значение true OptionOutputOriginalCase до Load

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

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

var html = doc.DocumentNode.InnerHtml;

Попробуйте изменить код на

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;
Другие вопросы по тегам