2016-11-16 7 views
0

リスト要素を取得します。私はこのようなHTMLの一部を持っている場合、HTML解析

<li class="myclass"> 
      <ul class="myclass2"> 
       <li><span>Name1</span><span>Value1</span></li><li><span>Name2</span><span>Value2</span></li><li><span>Name3</span><span>Value3</span></li> 
      </ul> 
     </li> 

私はHTMLの敏捷性パックを使用して、このように、このHTMLを解析しようとしている:

var values = mydetails.DocumentNode.QuerySelector(".myclass").QuerySelector("ul").InnerHtml; 

これは私を与えますこの部分は:

<li><span>Name1</span><span>Value1</span></li><li><span>Name2</span><span>Value2</span></li><li><span>Name3</span><span>Value3</span></li> 

しかし、私はさらに行く方法がわからない、私は名前と値を必要とするが、私はそれらを取得する方法がわかりません。私にそれをする方法を教えてもらえますか?ありがとう。

答えて

1

あなたのアイテムにhtml-idを付ける必要があります。この要素をjavascriptで取得するのは非常に簡単です。私はあなたのフレームワークを知りませんが、他にこれはjQueryのでは、たとえば、非常に簡単です:$("#id")

+0

これらの項目にはIDがありません。これらの項目にはIDを付けることはできません。 – jason

+0

IDなしでこれを行う方法はありますか? – jason

+0

あなたはgetChild()を試すことができます。この関数をulで使用すると、配列が得られます。最初の項目は '.... QuerySelector(" ul ")。getChild [0] ... ' – jenald

1

あなたはすべてのタグから値を取得するために正規表現を使用することができます

public void ProcessSpans(string inputHTML) 
{ 
    string pattern = @"<span([^>]*)class=\""(\w+)\""([^>]*)>(.*)<\/span>"; 
    RegexOptions regexOptions = RegexOptions.Multiline; 
    Regex regex = new Regex(pattern, regexOptions); 
    var matches = regex.Matches(inputHTML); 
    //Process the matches with your logic. 
} 

次にメソッドを呼び出しますそのように

var values = mydetails.DocumentNode.QuerySelector(".myclass").QuerySelector("ul").InnerHtml; 
ProcessSpans(values); 
関連する問題