从behinde中删除特定数量的标签的Html字符串

时间:2012-07-10 13:07:33

标签: c# html regex

如果我有一个html字符串,如:

    <strong>
    <br />\r\n
    <br />\r\n
<table></table>
    <br />\r\n
    <br />\r\n
    <br />\r\n
    <br />\r\n
    <br />\r\n
    <br />\r\n
    </strong>\r\n
    </span>\r\n

是否可以剥离html以便我在html结尾处只有1 <br>,所以人们最终不能创建40个新行?

解决方案如下:

  <strong>
        <br />\r\n
        <br />\r\n
    <table></table>
        <br />\r\n
        </strong>\r\n
        </span>\r\n

2 个答案:

答案 0 :(得分:0)

不确定您在问自己的问题的上下文,但您可以使用the next adjacent selector在页面本身上使用jQuery,如下所示:

$("br+br").remove();

Here is an example of it in action.

如果你想只是删除你的表后面的中断标记,只需改变你的jQuery语句看起来像这样:

$("table").nextAll("br+br").remove();

Here is an example of this in action.

以下是including jQuery in your page的说明。

答案 1 :(得分:0)

如果可以,请查看HTML Agility Pack。它可以帮助你。

这是我写的测试代码:

static void Main(string[] args)
{
    var htmlDoc = new HtmlDocument();
    htmlDoc.Load(@"E:\Libs\HtmlAgilityPack.1.4.0\htmlstring.html");

    var nodes = htmlDoc.DocumentNode.SelectNodes("//br").Skip(3);

    foreach (HtmlNode node in nodes)
    {
        node.PreviousSibling.Remove();

        node.Remove();
    }

    var output = htmlDoc.DocumentNode.OuterHtml;

    htmlDoc.Save(@"E:\Libs\HtmlAgilityPack.1.4.0\htmlstring-changed.html");
}