1

を作成HtmlDocumentして使用してLoadHtml(string)います。私の入力HTML文字列には、記号が含まれていることがあり<ます>。したがって、htmlは正しく解析されません。次に例を示します。

私のhtmlは
<p>Value < 20 A B C</p>

そして、この場合の私のドキュメントOutputHtmlは
<p>Value < 20="" a="" b=""></p>

HtmlDocumentで設定する必要のあるフラグがいくつかあるかもしれませんが、役立つものは何も見つかりませんでした。

PS HtmlNodeの動作は同じです。

4

1 に答える 1

0

問題を解決する最良の方法は、でcaharacterを変更することです<&lt文字を変更する必要はありません>

文字<がタグである場合、およびそれが「より小さい」場合を知るには、if ここでコードを尋ねることができます。

public static string CreateCorrectHtmlDoc(string htmlDoc)
        {
            int i = 0;
            List<int> index = new List<int>();
            try
            {
                //look for '<' 
                while ((i = htmlDoc.IndexOf("<", i)) != -1)
                {
                    i += 1;
                    //regex to find '<' that is no tag
                    if (Regex.IsMatch(htmlDoc[i].ToString(), "\\d|-") || Regex.IsMatch(htmlDoc[i].ToString(), "[^a-zA-Z!]") && Regex.IsMatch(htmlDoc[i + 1].ToString(), "\\d\\s|-|\\d"))
                    {
                        htmlDoc = htmlDoc.Substring(0, i - 1) + "&lt" + htmlDoc.Substring(i + 1);
                    }
                }
            }
            catch
            {
                Log.Insert("Error: CreateCorrectHtmlDoc");
                return "";
            }
            return htmlDoc;
        }

私はそれを使用しています、そしてそれは完璧に働いています

于 2012-10-09T19:22:51.600 に答える