gpt4 book ai didi

c# - 使用正则表达式 C# 从 HTML 中删除内部样式

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

我想使用 C# 从 html 中删除内部样式。这是我的 Html 文本

    <span style="font-family: tahoma; color: #9bbb59;">This is a simple text.</span><br />
<table>
<thead>
</thead>
<tbody>
<tr>
<td>&nbsp;R1C1</td>
<td>R1C2</td>
</tr>
<tr>
<td>R2C1</td>
<td>R2C2</td>
</tr>
</tbody>
</table>
<style type="text/css" id="telerik-reTable-1">
.telerik-reTable-1 {
border-width: 0px;
border-style: none;
border-collapse: collapse;
font-family: Tahoma;
}
.telerik-reTable-1 td.telerik-reTableFooterEvenCol-1 {
padding: 0in 5.4pt 0in 5.4pt;
text-align: left;
border-top: solid gray 1.0pt;
}
</style>

我希望它看起来像删除内部 CSS 后的样子。

 <span style="font-family: tahoma; color: #9bbb59;">This is a simple text.</span><br />
<table>
<thead>
</thead>
<tbody>
<tr>
<td>&nbsp;R1C1</td>
<td>R1C2</td>
</tr>
<tr>
<td>R2C1</td>
<td>R2C2</td>
</tr>
</tbody>
</table>

我使用了这个模式 @"<\s*style[^(style>)]*style>" .但它不起作用。

Note: I think I cann't use HtmlDocument to remove child node. Because it does not maintain parent child node relationship. so I want to use regular expression to remove the CSS.

最佳答案

您不应该使用正则表达式来解析 HTML 文档。检查此问题以了解原因。

RegEx match open tags except XHTML self-contained tags

你应该用 HTML Parser 来做,比如 Html Agility Pack .在这里你可以如何做到这一点。

        HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlInput);

var nodes = doc.DocumentNode.SelectNodes("//style");

foreach (var node in nodes)
node.ParentNode.RemoveChild(node);

string htmlOutput = doc.DocumentNode.OuterHtml;

关于c# - 使用正则表达式 C# 从 HTML 中删除内部样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40463787/

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