0

HTMLを削除することで変更されるデータテーブルがあります。htmlストリップ中に、、またはが検出された場合、<br>それら<p>は。<li>に置き換えられSystem.Environment.NewLineます。htmlストリッププロセスのインスタンスをテキストファイルに記録していますが、ログでフォーマットが正常に表示されます(すべてのCRLFが保持されます)。ただし、データテーブルでupdateメソッドが呼び出され、データがデータベースに送信されると、CRLF文字はすべて失われます。

コードスニペット:

public static class HtmlStripper
{
    static Regex _htmlRegex = new Regex("<.*?>", RegexOptions.Compiled);
    static Regex _liRegex = new Regex("<li>", RegexOptions.Compiled);
    static Regex _brRegex = new Regex("<(br)?(BR)?\\s?/?>\\s*", RegexOptions.Compiled);
    static Regex _pRegex = new Regex("</?[phPH].*?>\\s*", RegexOptions.Compiled);

    public static string StripTagsRegexCompiled(string source)
    {
        string noPorH = _pRegex.Replace(source, System.Environment.NewLine);
        string noBr = _brRegex.Replace(noPorH, System.Environment.NewLine);
        string noLi = _liRegex.Replace(noBr, System.Environment.NewLine + "t- ");
        return _htmlRegex.Replace(noLi, string.Empty);
    }

}
4

1 に答える 1

0

SSMSはデータグリッド内のCRLFを削除しますが、データベースにはまだ存在しています。これを証明するには、を押すCTRL-Tと、結果がグリッドではなくテキストに変わります。次に、を押しCTRL-Dて結果をグリッドに戻すことができます。

これは次の方法でテストできます。

SELECT  'Not' + CHAR(10) + CHAR(13) + 'Together'

まず、結果をGRIDに表示します。

(No Column name)
Not  Together

次に、TEXTの結果で:

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

-------------
Not

Together

(1 row(s) affected)


SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
于 2012-05-24T18:45:20.713 に答える