如何使用C#访问具有给定ID的HTML DIV标记的值

时间:2013-06-28 16:55:28

标签: c# html asp.net

我需要将 HTML 中的DIV元素的内容加载到变量中,以便将其打印到 HTA 文件中。但是,我在文档中有大约70个其他DIV元素,我需要访问一个特定元素。是否有访问具有特定属性的元素内容的快捷方式?

以下是我需要访问的元素的示例

<div id='storytext'>
    <p>Story Text</p>
</div>

2 个答案:

答案 0 :(得分:2)

我会使用HTML Agility Pack来提取内容。

代码看起来像这样

var htmlDocument = new HtmlDocument();
htmlDocument.Load(rawHTML); // string containing the HTML content

var storyDiv = htmlDocument.DocumentNode.Descendants("div").Any(x=>x.id == "storytext").FirstOrDefault();

从那里,您可以使用storyDiv.InnerTextstoryDiv.InnerHTML来获取内容。 (不要忘记检查以确保storyDiv不为空)

答案 1 :(得分:1)

您是否以编程方式下载包含DIV的网页,并且您想获取该DIV的内容?

假设您正在下载页面,您可能想尝试Html Agility Pack。这个库为您提供了一个Linq to XML-like API,用于处理更宽松的HTML页面标准。

如果您不想这样做,如果DIV标记非常可预测(只有id属性,或者具有特定顺序的属性),您可以使用正则表达式来拉取出来。然而,这将需要如此多的摆弄(假设您的DIV具有HTML内容),我建议从Html Agility Pack开始。