[英]How to parse html and return array of values in c# using regex.split
目前,我正在嘗試解析一些html並返回一個數組,其中包含每個元素中的值。
例如:
如果我將下面的標記傳遞給函數
var element = "td";
var html = "<tr><td>1</td><td>2</td></tr>";
return Regex.Split(html, string.Format("<{0}*.>(.*?)</{0}>", element));
我期望返回一個數組[] {1,2}
我的正則表達式需要什么樣? 目前,我的數組返回了很多元素,而我的正則表達式技能卻不足
不要使用正則表達式解析HTML。
相反,您應該使用HTML Agility Pack 。
例如:
HtmlDocument doc = new HtmlDocument();
doc.Parse(str);
IEnumerable<string> cells = doc.DocumentNode.Descendants("td").Select(td => td.InnerText);
自原始答案以來,加載html的方法已更改,現在是:
// From File
var doc = new HtmlDocument();
doc.Load(filePath);
// From String
var doc = new HtmlDocument();
doc.LoadHtml(html);
// From Web
var url = "http://html-agility-pack.net/";
var web = new HtmlWeb();
var doc = web.Load(url);
但是,如果您按照上面提供的鏈接使用文檔,就可以了:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.