0

テキストとその中のタグを保持しながら、HTMLコンテンツからspan、font、b、s、strike(およびその他の内部要素)タグを削除しようとして<br>います。この目的のために、私は HTML アジリティ パックを使用しています。テキストを保存することはできましたが、<br>タグはまだ問題です。何か案は?

コードは次のとおりです。

 private void removeTagsButPreserveText2(HtmlNode nodeToRemove)
    {
        var parent = nodeToRemove.ParentNode;
        var prev = nodeToRemove.PreviousSibling;

        if (prev != null)
        {
            var child = nodeToRemove.SelectNodes("./br");

            if (child == null)
            {
                parent.InsertAfter(documentToSearch.CreateTextNode(nodeToRemove.InnerText + " "), prev);

                nodeToRemove.Remove();
            }
            else
            {
                foreach (var item in child)
                {
                    var parent2 = item.PreviousSibling;

                    if (parent2 != null)
                    {
                        if (parent2.InnerText.HasDate())
                        {
                            var newNode = parent.InsertAfter(documentToSearch.CreateTextNode(parent2.InnerText), prev);
                            parent.InsertAfter(documentToSearch.CreateElement("br"), newNode);
                            nodeToRemove.Remove();
                        }
                    }
                }
            }
        }
    }

たとえば、入力は次のようになります。

<p><font face="Arial" size="2"><strike>
        <span style="font-weight: 400"><font color="#000000">Paper 
        Submission (Full 
        Paper) Before
        <span lang="en-us">September</span> 20, 201<span lang="en-us">2</span></font></span></strike><font color="#FF0000"><br>
        Notification of 
        Acceptance On <span lang="en-us">October 5</span>, 201<span lang="en-us">2</span><br>
        Authors' 
        Registration Before
        <span lang="en-us">October 20</span>, 201<span lang="en-us">2</span><br>
        ICNIT 2012 Conference 
        Dates November 
        17 - 18, 2012</font></font></p>

出力は次のようになります。

<p>Paper Submission (Full Paper) Before September 20, 2012<br>
        Notification of Acceptance On October 5, 2012<br>
        Authors' Registration Before October 20, 2012<br>
        ICNIT 2012 Conference 
        Dates November 
        17 - 18, 2012</p>
4

2 に答える 2

0

この種の HTML 操作には、HTML Agility Packという優れたライブラリがあります。

正しい方向を示す同様の質問があります: Html Agility Pack - Remove element, but not innerHtml

于 2012-11-17T08:51:39.753 に答える
-1

そのために正規表現を使用しようとしましたか?つまり、すべてを " <xxxx asdasd>" またはそのようなものに入れ、 "" 維持するだけで置き換え<BR>ますか?

于 2012-11-16T22:38:42.557 に答える