我已经看过可以删除标签的正则表达式,这很棒,但我也有类似的东西
Run Code Online (Sandbox Code Playgroud)
等等
这实际上不是来自HTML文件.它实际上来自一个字符串.我正在从SharePoint Web服务中提取数据,这使我可以使用/生成HTML用户
<div>Hello! Please remember to clean the break room!!! "bob"e; <BR> </div>
Run Code Online (Sandbox Code Playgroud)
所以,我正在解析100-900行,每行8-20列.
看一下HTML Agility Pack,它是一个HTML解析器,可用于InnerText从文档中提取HTML节点.
正如在SO上多次指出的 那样 ,您无法信任HTML解析为正则表达式.有时可能认为适当(对于极其有限的任务); 但总的来说,HTML太复杂,太容易出现不规则.当您尝试使用正则表达式解析HTML时,可能会发生错误.
使用HAP等解析器可以提供更大的灵活性.一个(粗略的)示例,它可能将它用于此任务:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load("path to your HTML document");
StringBuilder content = new StringBuilder();
foreach (var node in doc.DocumentNode.DescendantNodesAndSelf())
{
if (!node.HasChildNodes)
{
sb.AppendLine(node.InnerText);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只对特定节点或节点集感兴趣,也可以对文档执行XPATH查询:
var nodes = doc.DocumentNode.SelectNodes("your XPATH query here");
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |