如何从这个源获取HTML选择器?

时间:2014-09-29 14:43:01

标签: c# html html-agility-pack

你好我试图得到这个" a"使用C#中的HtmlAgilityPack从这个HTML源代码中获取atrribute。

            <table width='200'>
            <tr>
                <td width='50'>
                    <a href='index.php?action=shop&type=koszulka'>
                    <img src='images/lay_game/miasto/sklep.png' width='40' class="dymek" style='cursor:pointer;' title="Tutaj możesz kupić wyposażenie dla swojego zawodnika"  /></a>
                </td>
                <td>
                    <a href='index.php?action=shop&type=koszulka' >Sklepy</a>
                </td>
            </tr>
            <tr>
                <td width='50'>
                    <a href='index.php?action=37317|lbr5tlbphafc3cf30b08vl8601|trening|MCMxIzI=|a32a443dd66c39e8cce9a4903171d81b|162f3a6d72c860855a5dc3de18c8855c'>
                    <img src='images/lay_game/miasto/trening.png' width='40' class="dymek" style='cursor:pointer;' title="Chcesz podnieść swoje umiejętności? Dobrze trafiłeś"/></a>
                </td>
                <td>
                    <a href='index.php?action=37317|lbr5tlbphafc3cf30b08vl8601|trening|MCMxIzI=|a32a443dd66c39e8cce9a4903171d81b|162f3a6d72c860855a5dc3de18c8855c'>Trening</a>
                </td>
            </tr>
            <tr>
                <td width='50'>
                    <a href='index.php?action=hospital'>
                    <img src='images/lay_game/miasto/szpital.png' width='40' class="dymek" style='cursor:pointer;' title="Możesz tu zredukować zmęczenie, wyleczyć kontuzję lub podnieść formę"/></a>
                </td>
                <td>
                    <a href='index.php?action=hospital'>Szpital</a>
                </td>
            </tr>
            <tr>
                <td width='50'>
                    <a href='index.php?action=gielda'>
                    <img src='images/lay_game/miasto/centrum.png' width='40' class="dymek" style='cursor:pointer;' title="Chcesz zarobić i nie boisz się ryzyka? Zatem witamy na giełdzie FT"  /></a>
                </td>
                <td>
                    <a href='index.php?action=gielda'>Giełda</a>
                </td>
            </tr>
            <tr>
                <td width='50'>
                    <a href='index.php?action=pojedynek'>
                    <img src='images/lay_game/miasto/pojedynek.png' width='40' class="dymek" style='cursor:pointer;' title="Pojedynek Uliczny."  /></a>
                </td>
                <td>
                    <a href='index.php?action=pojedynek'>Pojedynek</a>
                </td>
            </tr>
        </table>

我的目标是href="index.php?action=37317|lbr5tlbphafc3cf30b08vl8601|trening|MCMxIzI=|a32a443dd66c39e8cce9a4903171d81b|162f3a6d72c860855a5dc3de18c8855c"

的属性

我真的不知道怎么做到这一点。我尝试的代码如下:

HtmlAgilityPack.HtmlDocument HTMLParser = new HtmlAgilityPack.HtmlDocument();
HTMLParser.LoadHtml(result);                

string href;                
foreach (HtmlNode node in HTMLParser.DocumentNode.SelectNodes("//table//tr//td//a"))
{
     href = node.ChildNodes[0].InnerHtml;
} 

但它不起作用:(

2 个答案:

答案 0 :(得分:0)

以下情况应该可以正常工作,假设您关心的是特定的<a>标记:

HtmlNode anchor = HTMLParser.DocumentNode.SelectSingleNode(@"//table/tr[2]/td/a");

答案 1 :(得分:0)

有两个<a>元素,您想要href属性。更重要的是,您不清楚如何识别特定的<a>。假设您想通过内部文本"Trening"进行识别,请尝试以下方式:

HtmlNode a = HTMLParser.DocumentNode.SelectSingleNode(@"//table/tr/td/a[.='Trening']");
String href = a.GetAttributeValue("href", "");