gpt4 book ai didi

c# - 在 C# 中格式化 html

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

我在 C# 中有一个变量,其中包含一些像这样的字符串

string myText="my text  which contains <div>i am text inside div</div>";

现在我想用 \n 替换所有“"<br>" ”(换行符)对于此变量的数据,除了 div 中的文本。

我该怎么做?

最佳答案

其他人建议使用 HTMLAgilityPack 等库。前者确实是一个不错的工具,但如果您不需要超出您要求的 HTML 解析功能,那么一个简单的解析器就足够了:

    string ReplaceNewLinesWithBrIfNotInsideDiv(string input) {

int divNestingLevel = 0;
StringBuilder output = new StringBuilder();
StringComparison comp = StringComparison.InvariantCultureIgnoreCase;

for (int i = 0; i < input.Length; i++) {
if (input[i] == '<') {
if (i < (input.Length - 3) && input.Substring(i, 4).Equals("<div", comp)){
divNestingLevel++;
} else if (divNestingLevel != 0 && i < (input.Length - 5) && input.Substring(i, 6).Equals("</div>", comp)) {
divNestingLevel--;
}
}

if (input[i] == '\n' && divNestingLevel == 0) {
output.Append("<br/>");
} else {
output.Append(input[i]);
}
}

return output.ToString();
}

这也应该处理嵌套的 div。

关于c# - 在 C# 中格式化 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059072/

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