gpt4 book ai didi

C# 只替换文件中的一个东西

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:33 25 4
gpt4 key购买 nike

我制作了一个修改本地 html 页面并替换其中某个值的程序,如您所见:

string j = Microsoft.VisualBasic.Interaction.InputBox("Replace " + listView2.SelectedItems[0].Text + "/" + intlstv2.ToString() + " With?");

var links = webBrowser1.Document.GetElementsByTagName("td");
foreach(HtmlElement lnk in links)
{
if (lnk.GetAttribute("className") == "point" && lnk.InnerText == listView2.SelectedItems[0].Text || lnk.GetAttribute("className") == "point tekort" && lnk.InnerText == listView2.SelectedItems[0].Text)
{
MessageBox.Show(lnk.InnerText);
MessageBox.Show("Replacing with: " + j.ToString());

System.IO.File.WriteAllText("Fin.html", this.webBrowser1.DocumentText);

System.IO.File.WriteAllText("Fin.html", System.IO.File.ReadAllText("Fin.html").Replace(lnk.InnerText, j));
}
}

在 html 文件中:

<td class="point">14,5</td> <---- Value that I want replaced
<td class="average" title="Med">14,5</td> <---- Value that I want to keep

ListView 中选择的值 2 = 14,5 但我遇到的问题是在 html 中,14,5 存在两次(一次用于类名点,第二次用于类名 med)我只会喜欢在不改变 med 的内文的情况下替换类名点的内文。

我该怎么做?

最佳答案

通过将 HTML 文档作为对象树而不是字符串“blob”来遍历,您会取得更大的成功。

话虽这么说,使用 HtmlDocument 来做这件事会很痛苦,因为它没有提供一种通过类名、属性值等轻松自省(introspection)的方法。话虽如此,您可以调用 GetElementByTagName 并获取所有 td 元素,并通过 class 属性过滤这些元素。有点复杂,但我想是可以控制的。

我通常使用 HtmlAgilityPack 库,它提供了很多很多方法和对象,可以让您更轻松地找到您的 html 元素。强烈推荐您使用它!

关于C# 只替换文件中的一个东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32997901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com