Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#我如何检索这些信息?_C#_Html_Winforms - Fatal编程技术网

C#我如何检索这些信息?

C#我如何检索这些信息?,c#,html,winforms,C#,Html,Winforms,在HTML页面上,我有类似的内容 <table class="information"> <tbody> <tr> <td class="name">Name:</td> <td><a href="example.com">John</a></td> </tr> <tr> <td>...</td> <td>...</td&g

在HTML页面上,我有类似的内容

<table class="information">
<tbody>
<tr>
<td class="name">Name:</td>
<td><a href="example.com">John</a></td>
</tr>
<tr>
<td>...</td>
<td>...</td>
</tr>
....
</tbody>
</table>
签出-使用html源代码是一个免费且非常好的库。

签出-使用html源代码是一个免费且非常好的库

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var table = doc.DocumentNode.SelectSingleNode("//table[@class='information']");
var td = table.SelectSingleNode("//td[@class='name']");

Console.WriteLine(td.InnerText);



FTW+1用于HTML敏捷性包。在下面,它使用XPath查询HTML文档。FTW+1用于HTML敏捷性包。下面它使用XPath查询HTML文档。HtmlAgilityPack很酷,但我更喜欢ScrapySharp()。它是建立在HtmlAgilityPack之上的,但也提供CSS选择器支持。如何安装它们?如何使用它们?从上面的页面下载二进制文件。将它们添加到引用中。使用:查看文档。我找不到任何scrapysharp文档?HtmlAgilityPack很酷,但我更喜欢scrapysharp()。它是建立在HtmlAgilityPack之上的,但也提供CSS选择器支持。如何安装它们?如何使用它们?从上面的页面下载二进制文件。将它们添加到引用中。使用:查看文档。我找不到任何可用于scrapysharp的文档?您能帮我安装吗?当我解压时,我有这些文件夹。。Net20、Net40、Net40客户端、Net45、sl3 wp、sl4、sl4-windowsphone71、sl5和winrt45。。。。使用哪一个将其添加为引用?@Alkis选择要引用的平台。就这些。你能帮我安装吗?当我解压时,我有这些文件夹。。Net20、Net40、Net40客户端、Net45、sl3 wp、sl4、sl4-windowsphone71、sl5和winrt45。。。。使用哪一个将其添加为引用?@Alkis选择要引用的平台。就这些。罗莎娜这正是我需要的,但有个问题。。您的答案将给出结果“Name:”,但我希望结果是“John”。。。我试图修改它并编写td.NextSibling.InnerText以获取下一个元素的内部文本,但出现了错误,然后尝试这种方法-首先使用与上面相同的方法查找此表控件。然后遍历控件,并查找标记中只有一个标记作为示例。所以你可以很容易地得到数据。罗莎娜这正是我需要的,但有一个问题。。您的答案将给出结果“Name:”,但我希望结果是“John”。。。我试图修改它并编写td.NextSibling.InnerText以获取下一个元素的内部文本,但出现了错误,然后尝试这种方法-首先使用与上面相同的方法查找此表控件。然后遍历控件,并查找标记中只有一个标记作为示例。因此,您可以轻松获取数据。
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var table = doc.DocumentNode.SelectSingleNode("//table[@class='information']");
var td = table.SelectSingleNode("//td[@class='name']");

Console.WriteLine(td.InnerText);
var text = doc.DocumentNode.Descendants("td")
    .First(td => td.Attributes["class"] != null && td.Attributes["class"].Value == "name")
    .InnerText;
HtmlElementCollection tData = wb.Document.GetElementsByTagName("td");

                foreach (HtmlElement td in tData)
                {
                    string name = "";
                    if (td.GetAttribute("classname") == "name")
                    {
                        name = td.InnerText;
                    }
                }