Html选择C#

Html选择C#

问题描述:

我在源代码中有多个元素,看起来像这样。Html选择C#

<a id="thread_title_158922" href="#"></a> 

问题是我不知道标题后面的数字。 所以我想这句法:

 HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
     doc.LoadHtml(code); 
     var items = doc.DocumentNode.SelectNodes("//a[@id='thread_title_*]"); 

但它不工作。有没有解决方案?

+0

“它不工作”?请参阅http://www.catb.org/~esr/faqs/smart-questions.html#code – Juliet 2011-02-06 20:33:57

此作品(测试):

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(code); 
var items = doc.DocumentNode 
       .SelectNodes("//a[starts-with(@id,'thread_title_')]"); 

编辑:

我看着对方的回答就被删除之前 - 在我看来这应该都还有工作(或所以我认为):

var items = doc.DocumentNode 
       .SelectNodes("//a[@id='thread_title_*']"); //returs null 

经过一番研究后发现,XPath支持HtmAgilityPac k属性不支持正则表达式,但可以使用如starts-with,contains,translate,substring-beforesubstring-after等函数。只是需要注意。

+0

+1正确答案。 – 2011-02-06 20:24:22