【问题标题】:How to get HTML selector form this source?如何从这个源中获取 HTML 选择器?
【发布时间】:2014-11-24 00:03:28
【问题描述】:

您好,我正在尝试使用 C# 中的 HtmlAgilityPack 从这个 HTML 源代码中获取这个“a”属性。

            <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;
} 

但它不起作用:(

【问题讨论】:

标签: c# html html-agility-pack


【解决方案1】:

假设您只关心特定的&lt;a&gt; 标签,以下应该可以正常工作:

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

【讨论】:

    【解决方案2】:

    有两个 &lt;a&gt; 元素具有您想要的 href 属性。更重要的是,不清楚你想如何识别那个特定的&lt;a&gt;。假设你想通过内部文本"Trening"来识别,试试这个方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-16
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      相关资源
      最近更新 更多