从 <p> asp c 中的段落中获取内容#



我想使用以下代码从网页的段落加载多行文本框:

// load page source 
var cli = new WebClient();
string rawdata = cli.DownloadString(urltxt.Text.Trim());
// get paragraph content and load in textbox
HtmlDocument document = new HtmlDocument();
document.LoadHtml(rawdata);
foreach (HtmlNode paragraph in document.DocumentNode.SelectNodes("//p"))
{
    string content = paragraph.InnerText;
    valuetxt.Text = "";
    valuetxt.Text = content;
}

我遇到的问题:这段代码只返回网页的最后一段,但我想要所有段落。谁能帮我?提前谢谢。对不起,我的英语不好。

您应该在此处使用StringBuilder以获得更好的性能。

HtmlDocument document = new HtmlDocument();
document.LoadHtml(rawdata);
StringBuilder sb = new StringBuilder();
foreach (HtmlNode paragraph in document.DocumentNode.SelectNodes("//p"))
{
    sb.Append(paragraph.InnerText);
}
valuetxt.Text = sb.ToString();

参考和解释:字符串与字符串生成器 C#

这不仅仅是让事情顺利进行,而是要做到完美!

在循环中,您每次都会覆盖文本值的值。您需要在循环中生成内容,然后在循环外部设置 Text 属性:

string content = "";
foreach (HtmlNode paragraph in document.DocumentNode.SelectNodes("//p"))
{
    content += paragraph.InnerText;
}
valuetxt.Text = content;

最新更新