【发布时间】:2013-08-30 09:05:23
【问题描述】:
我有一个 html 文档,在解析后只包含格式化的文本。我想知道是否可以像鼠标选择它 + 复制 + 粘贴到新的文本文档中那样获取它的文本?
我知道这在 Microsoft.Office.Interop 中是可能的,我有 .ActiveSelection 属性来选择打开的 Word 的内容。
我需要找到一种方法以某种方式加载 html(可能在浏览器对象中),然后复制其所有内容并将其分配给字符串。
var doc = new HtmlAgilityPack.HtmlDocument();
var documetText = File.ReadAllText(myhtmlfile.html, Encoding.GetEncoding(1251));
documetText = this.PerformSomeChangesOverDocument(documetText);
doc.LoadHtml(documetText);
var stringWriter = new StringWriter();
AgilityPackEntities.AgilityPack.ConvertTo(doc.DocumentNode, stringWriter);
stringWriter.Flush();
var titleNode = doc.DocumentNode.SelectNodes("//title");
if (titleNode != null)
{
var titleToBeRemoved = titleNode[0].InnerText;
document.DocumentContent = stringWriter.ToString().Replace(titleToBeRemoved, string.Empty);
}
else
{
document.DocumentContent = stringWriter.ToString();
}
然后我返回文档对象。问题是字符串的格式并不总是像我想要的那样
【问题讨论】:
-
你有代码要显示吗?你试过什么?
-
我已经尝试过 html 敏捷包,最初我的 html 有点乱,所以我正在对它们进行一些替换。之后,我尝试将 doc.DocumentNode 分配给 StringWriter。我将更新我的问题。
标签: c# html text-parsing html-rendering