0

Html Agility Pack を使用して HTML コードを解析しようとしています。<td>利用可能なチュートリアルはありますか、またはIDもクラスも持たないからテキストを取得する方法を教えてもらえますか?

    <table id="results-table">
    <tr class="row1">
    <td>Diode Zener Single 12V 5% 1W 2-Pin DO-41 Bulk</td> 
    ...

各行には 10 個の異なる が含まれます<td>。ありがとう!

4

3 に答える 3

3

これを使用して、持てるすべてのsXPATHを照会することができますtdtableid="results-table"

//table[@id='results-table']/tr/td

Firepath for Firefox は、XPATH の策定に役立ち、そこから操作できます。

以下のサンプルコード

HtmlDocument doc = new HtmlDocument();
var fileName = @"..\..\..\docs\10960189.htm";
doc.Load(fileName);

var nodes = doc.DocumentNode.SelectNodes("//table[@id='results-table']/tr/td");

foreach (var node in nodes)
{
    Debug.WriteLine(node.InnerText);
}

HTH

于 2012-06-09T12:28:11.053 に答える
2

XPath の使用方法を説明するリンクを次に示します。

http://www.w3schools.com/xpath/

于 2012-06-10T14:25:52.023 に答える
0

あなたの td タグのいくつかには class/id があると思います。次のコードを使用します。私はlinqpadでそれを書きました

void Main()
{
    var webGet = new HtmlAgilityPack.HtmlDocument();
    //web page/string that need to be parsed
    webGet.LoadHtml(@"<table id='results-table'>" +
                                "<tr class='row1'>" + 
                                "<td class='testclass'>test td with class</td>" + 
                                "<td id='testid'>test td with id</td>" + 
                                "<td>Diode Zener Single 12V 5% 1W 2-Pin DO-41 Bulk</td>" + 
                                "<td>test td without class or id</td>" + 
                                "<tr/>"
                                );

    var tableOnPage = (from tds in webGet.DocumentNode.Descendants()
                      where lnks.Name == "td" &&
                            lnks.Attributes["class"] == null && tds.Attributes["id"] == null &&
                            tds.ParentNode.InnerText.Trim().Length > 0 && lnks.InnerText.Trim().Length > 0 
                     select new
                     {
                         td = tds.DescendantNodes().SingleOrDefault ().InnerHtml.Trim(),
                     });

    //looping through each items
    foreach (var item in tableOnPage)
    {
        Console.WriteLine(item.td);
    }
}

出力は

ダイオード ツェナー シングル 12V 5% 1W 2ピン DO-41 バルク

クラスまたはIDなしでtdをテストする

于 2012-08-10T06:28:37.373 に答える