我正在使用 WebClient 获取完整的 html 代码。但我需要使用正则表达式从完整的 html 中获取指定的 div。
例如:
<body>
<div id="main">
<div id="left" style="float:left">this is a <b>left</b> side:<div style='color:red'> 1 </div>
</div>
<div id="right" style="float:left"> main side</div>
<div>
</body>
如果我需要名为'main'的div,函数返回
<div id="left" style="float:left">this is a <b>left</b> side:<div style='color:red'> 1 </div>
</div>
<div id="right" style="float:left"> main side</div>
如果我需要名为'left'的div,函数返回
this is a <b>left</b> side:<div style='color:red'> 1 </div>
如果我需要名为'right'的div,函数返回
main side
我该怎么办?
最佳答案
为什么人们坚持尝试使用正则表达式来解析 html?如果你排除一大堆边缘情况,你可能可以做到这一点......但只需使用 HTML Agility Pack你就完成了:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(...); // or Load
string main = doc.DocumentNode.SelectSingleNode("//div[@id='main']").InnerHtml;
(注意我假设它不是 xhtml;如果它是 xhtml,请使用 XmlDocument
或 XDocument
,以及与上面非常相似的代码)
关于c# - 如何在C#中使用正则表达式通过id获取html div元素的innertext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1431391/