如何使用C#从本地HTML文件提取数据并赋值给变量
C# 从本地HTML文件提取指定内容并赋值变量
需求说明
从本地路径 file:///C:/WORK/data/sample.html 的HTML文件中,提取Sample Businessname(企业名称)和https://sample.com/(网站地址),并通过C#将这两个值赋值给对应变量。
目标HTML结构
<div class="row"> <label class="">Business Name:</label> <div class="data">Sample Businessname</div> </div> <div class="row"> <label class="">Website Address:</label> <div class="data"><a href="https://sample.com/" target="_blank">https://sample.com/</a> </div> </div>
C# 实现方案
使用HtmlAgilityPack库(需通过NuGet安装)解析HTML,这是处理HTML解析的可靠方案,避免正则表达式解析HTML的潜在问题。
步骤1:安装HtmlAgilityPack
在NuGet包管理器控制台执行命令:
Install-Package HtmlAgilityPack
步骤2:提取内容的代码实现
using HtmlAgilityPack; using System; class Program { static void Main() { // 本地HTML文件路径 string filePath = @"C:\WORK\data\sample.html"; // 加载HTML文档 HtmlDocument doc = new HtmlDocument(); doc.Load(filePath); // 提取企业名称 string businessName = doc.DocumentNode.SelectSingleNode("//div[label[text()='Business Name:']]/div[@class='data']")?.InnerText.Trim(); // 提取网站地址(可选择获取a标签文本或href属性) string websiteUrl = doc.DocumentNode.SelectSingleNode("//div[label[text()='Website Address:']]/div[@class='data']/a")?.InnerText.Trim(); // 若需直接获取href属性值,替换为: // string websiteUrl = doc.DocumentNode.SelectSingleNode("//div[label[text()='Website Address:']]/div[@class='data']/a")?.GetAttributeValue("href", string.Empty); // 输出结果或赋值给变量使用 Console.WriteLine($"企业名称: {businessName}"); Console.WriteLine($"网站地址: {websiteUrl}"); } }
代码说明
- 用XPath定位目标元素:通过
label文本找到对应row容器,再获取class="data"的子元素内容。 - 针对网站地址,可根据需求选择提取a标签文本或直接获取
href属性值。 - 加入
?.空值判断避免空引用异常,提升代码健壮性。
内容的提问来源于stack exchange,提问作者Yevrah Aradnop
相关产品推荐
相关产品推荐

