【问题标题】:C# - Using HTMLAgilityPack to convert a Node to StringC# - 使用 HTMLAgilityPack 将节点转换为字符串
【发布时间】:2012-06-08 11:11:39
【问题描述】:

我正在尝试将选定的 span 标签的内部文本转换为字符串。

<span id="course-text">ELEC1700/ELEC1700 2012 S1: Computer Engineering 1</span>

所以上面会变成:“ELEC1700/ELEC1700 2012 S1: Computer Engineering 1”

我已经尝试了几个使用 innerText 和 getAttributes 的组合,但我无法让它工作。

string name;

WebClient client = new WebClient();

HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

htmlDoc.Load(new System.IO.StringReader(client.DownloadString(urlTxtBx.Text)));

name = htmlDoc.DocumentNode.SelectSingleNode("//span[@id='course-text']").InnerText;

【问题讨论】:

  • 您是从文本框中加载文本吗?如果您使用 html - > htmlDocument.LoadHtml(ASCIIEncoding.ASCII.GetString(htmlString)) 试试这个?
  • 您是否确认 htmlDoc 肯定包含正确的 xml(因为看起来您是从网络上获取它...当您直接放入示例 HTML 时它是否有效(删除赢)。

标签: c# html-agility-pack dom selectsinglenode


【解决方案1】:

我在 urlTxtBx.Text 上缺少 client.DownloadString。

上面的代码现在可以正常工作了:)

【讨论】:

  • 如果你使用htmlDoc.LoadHtml(client.DownloadString(urlTxtBx.Text));,它会为你节省一个字符串阅读器;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 2011-08-28
  • 2013-01-14
  • 1970-01-01
相关资源
最近更新 更多