2011-02-06 9 views
2

私はこのように見えるソースコード内に複数の要素を持っています。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

答えて

2

これは、(テスト)動作します:

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 

いくつかの調査の結果、HtmAgilityPacのXPathサポートkの属性は正規表現をサポートしていませんが、starts-with,、translatesubstring-beforesubstring-afterなどの関数を使用できます。知っているだけのちょっとした話。

+0

+1正解を参照してください。 –

+0

よく知っていて、ありがとう! – sevi