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;