c# - Html 敏捷包/C# : how to create/replace tags?

标签 c# html parsing

任务很简单,但我找不到答案。

使用 Node.Remove() 可以轻松删除标签(节点)...但是如何替换它们呢?

有一个 ReplaceChild() 方法,但它需要创建一个新标签。如何设置标签的内容? InnerHtml 和 OuterHtml 是只读属性。

最佳答案

请看这段代码:

public string ReplaceTextBoxByLabel(string htmlContent) 
{
  HtmlDocument doc = new HtmlDocument();
  doc.LoadHtml(htmlContent);

  foreach(HtmlNode tb in doc.DocumentNode.SelectNodes("//input[@type='text']"))
  {
    string value = tb.Attributes.Contains("value") ? tb.Attributes["value"].Value : " ";
    HtmlNode lbl = doc.CreateElement("span");
    lbl.InnerHtml = value;

    tb.ParentNode.ReplaceChild(lbl, tb);
  }

  return doc.DocumentNode.OuterHtml;
}

关于c# - Html 敏捷包/C# : how to create/replace tags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540154/

相关文章:

c# - 根据数据库选择突出显示/禁用ajax日历控件中的特定日期

javascript - HTML 进度元素未更新

javascript - Angular.js 和 Node.js 获得 GET 而不是 POST

php - 单元格停止行处理中的未转义字符 PHPExcel

html - 使用 Nokogiri::HTML 抓取 - 无法从 XPATH 获取文本

c# - 在 WPF 中获取窗口的真实位置

c# - IEquatable<T>、IComparable<T> 是否应该在非密封类上实现?

java - 从 html 文件中提取某些文本

c# - 创建TextBlock时我可以知道它的宽度吗?

javascript - 通过javascript追加子节点