0

私は C# XAML と Linq の初心者で、linq を使用してこの HTML コードを解析するのに助けが必要です。linq を使用して strong> タグ間の値を取得する方法は知っていますが、td class= 'sivo' の間の値を抽出し、映画の英語名を取得し、https リンクの後に表示されるリンクと対応する再生時間を取得する必要があります。

<div class='movieItemWrapper'>
       <table cellspacing='2' cellpadding='0'>
           <tr>
             <td>
                  <strong>Riddick</strong>
             </td>
           </tr>
           <tr>
               <td class='sivo'>Riddick</td>
           </tr>
              <tr>
                 <td class='sivo'>DV. 11  -
                    <a href='https://some.text.here/performance.aspx?oid=C9A53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>16.50</a>, DV. 11  - <a href='https://some.text.here/performance.aspx?oid=20B53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>19.15</a>, DV. 7  - <a href='https://some.text.here/performance.aspx?oid=41B53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>20.00</a>, DV. 11  - <a href='https://some.text.here/performance.aspx?oid=05B53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>21.40</a>, DV. 7  - <a href='https://some.text.here/performance.aspx?oid=86B53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>22.30</a>,
                </td>
              </tr>
           </table>
        </div>
        <div class='movieItemWrapper'>
           <table cellspacing='2' cellpadding='0'>
              <tr>
                 <td>
                    <strong>Domestic name</strong>
                 </td>
              </tr>
              <tr>
                 <td class='sivo'>The Conjuring</td>
             </tr>
             <tr>
                 <td class='sivo'>DV. 3  - <a href='https://some.text.here/performance.aspx?oid=2AA53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>17.00</a>, DV. 2  - <a href='some.text.here/performance.aspx?oid=4EA53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>19.00</a>, DV. 2  - <a href='https://some.text.here.hr/performance.aspx?oid=E3B53000023KBHTNGF&amp;coid=10000000014OCPXCOG' target='_blank'>21.20</a>,
                 </td>
             </tr>
      </table>
</div>

私はこのコードを試しました

var times = from tr in doc.DocumentNode.Descendants("tr")
            from td in tr.Descendants("td").Where(x => x.Attributes["class"].Value == "sivo")
            select td;
4

1 に答える 1

0
HtmlAgilityPack.HtmlDocument doc= new HtmlAgilityPack.HtmlDocument(); htmlDoc.LoadHtml(stringWithHtml);        
  var names = doc.DocumentNode.Descendants().Where(n => n.Name == "td").Where(x => x.Attributes["class"] != null && x.Attributes["class"].Value == "sivo");

    var links = doc.DocumentNode.Descendants().Where(n => n.Name == "td").Where(x => x.Attributes["class"] != null && x.Attributes["class"].Value == "sivo").Select(x => x.Descendants().Where(s => s.Name == "a"));
    foreach (var item in names)
    {
        var blabla = item.InnerText;
    }
    foreach (var item in links)
    {
        var lnks = item.Select(x => x.Attributes["href"].Value);//links
        var times = item.Select(x => x.InnerText);  //times
    }
于 2013-09-13T20:15:00.370 に答える