<table width="770" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="even" width="640" valign="middle">
<span style="line-height: 20px;">10年≤年限<50年</span>
</td>
</tr>
</table>
【需要达到的效果】
提取出
“10年≤年限<50年”
用mshtml很容易就提出来了,可是HtmlAgilityPack 提不出来也就算了,还更改了内容返回。。。咋办?
mshtml又不知道在c#里怎么调用,求指点正确姿势..
------解决思路----------------------
那样反射现在没有什么意义了,C# 这边本来就可以添加 COM 的引用,可以自动帮你生成好需要的接口,也有 dynamic 关键字支持 late-bind。给工程添加引用的时候有一栏 COM ,里面找 Microsoft HTML Object Library,添加后就可以new HTMLDocument()了。如果用了dynamic,体验和 VB 是一样的,比如我之前的例子可以改成:
既然你熟悉用 VB,不熟悉 C# 调用 COM,那干脆用 VB 写个程序干这个事情,给 C# 这边调用也行。
var html = File.ReadAllText("e:\\test.htm");
dynamic doc = new HTMLDocument();
doc.write(html);
var b = doc.body.getElementsByTagName("span");
Console.WriteLine(b[0].innerText);