从 asp c# 中的 <p> 段落获取内容
Get content from <p> paragraph in 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;
}
我遇到的问题:这段代码只有returns网页的最后一段,但我想要所有段落。谁能帮我?提前致谢。抱歉我的英语不好。
在您的循环中,您每次都会覆盖 Text 值。您需要在循环中构建内容,然后在其外部设置文本 属性:
string content = "";
foreach (HtmlNode paragraph in document.DocumentNode.SelectNodes("//p"))
{
content += paragraph.InnerText;
}
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();
参考与解释:String Vs StringBuilder 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;
}
我遇到的问题:这段代码只有returns网页的最后一段,但我想要所有段落。谁能帮我?提前致谢。抱歉我的英语不好。
在您的循环中,您每次都会覆盖 Text 值。您需要在循环中构建内容,然后在其外部设置文本 属性:
string content = "";
foreach (HtmlNode paragraph in document.DocumentNode.SelectNodes("//p"))
{
content += paragraph.InnerText;
}
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();
参考与解释:String Vs StringBuilder C#
这不仅仅是让事情顺利进行,而是要做到完美!