首先,我的应用程序不是Web应用程序。 我的目标是阅读html文件并进行修改。
所以我写这段代码:
string fileName = "~\\ActivationMail.html";
string textLine = string.Empty;
System.IO.StreamReader objReader;
objReader = new System.IO.StreamReader(fileName);
do
{
textLine += objReader.ReadLine();
if (textLine.Contains("id=\"link\""))
{
textLine += "href=\"www.google.com\"";
}
} while (objReader.Peek() != -1);
objReader.Close();
但每次阅读整个html文件似乎都不是最佳解决方案。我可以在不读取(循环)整个html文件的情况下更改特定的div吗?有可能吗?
答案 0 :(得分:4)
如果您只想更改某些内容,则可以使用XPath执行此操作。使用HTML Agility Pack,您可以使用C#。
执行此操作答案 1 :(得分:0)
您可以使用XElement等将HTML加载为XML,但最终如果要删除或插入字符,则需要调整文件大小并重新定位字符。
答案 2 :(得分:0)
安装HAP软件包:
Install-Package HtmlAgilityPack -Version 1.11.27
字符串:
// From String
string result ="<div id="RemoveableDiv"></div> <div id="2"></div>"
代码:
var doc = new HtmlDocument();
doc.LoadHtml(result);
foreach (var node in doc.DocumentNode
.Descendants("div")
.Where(d => d.GetAttributeValue("Id", "RemoveableDiv").IndexOf("NavContent") >= 0)
.ToArray())
node.Remove();
result = doc.documentnode.innerhtml;
答案 3 :(得分:0)
获取section_1的开始和结束索引的位置
stringIndex =StringNthOccFinder.IndexOfNth(HtmlSting, "<Section_1", 0, 1);
endIdex = StringNthOccFinder.IndexOfNth(HtmlSting, "</Section_1>", 0, 14);
获取要删除的HTML部分
HtmlSection= result.Substring(stringIndex , endIdex - stringIndex );
将html部分替换为“”
result = result.Replace(HtmlSection, "");