HTML テンプレートはリソースとしてアプリケーションにコンパイルされます。HTML テンプレートのフラグメントは次のようになります。
<A href="%PANELLINK%" target="_blank">
<IMG border="0" src="%PANELIMAGE%" style="%IMAGESTYLE%">
</A><BR>
%CAPTIONTEXT%
より大きなリソース HTML ファイルにはスタイリング、癖のないモードなどが含まれているため、このように気に入っています。
しかし、いつものように、リンクがない場合はアンカータグを省略するオプションが必要です。また、キャプションがない場合は、BR タグを省略してください。
考慮されたテクニックNº1
C# コードで HTML フラグメント全体を作成する必要がないことを考えると、次のようなことを考えました。
%ANCHORSTARTTAGPREFIX%<A href="%PANELLINK%" target="_blank">%ANCHORSTARTTAGPOSTFIX%
<IMG border="0" src="%PANELIMAGE%" style="%IMAGESTYLE%">
%ANCHORENDTAGPREFIX%</A>%ANCHORENDTAGPOSTFIX%CAPTIONPREFIX%<BR>
%CAPTIONTEXT%%CAPTIONPOSTFIX%
プレフィックスとポストフィックスを使用して HTML コードを次のように変換できるという考えで:
<!--<A href="%PANELLINK%" target="_blank">-->
<IMG border="0" src="%PANELIMAGE%" style="%IMAGESTYLE%">
<!--</A>--><!--<BR>
%CAPTIONTEXT%-->
しかし、それはばかげているだけでなく、帯域幅を浪費し、バグが発生する可能性があることを 1 人の回答者が思い出させてくれます。
考慮されたテクニックNº2
タグの卸売交換:
%AnchorStartTag%
<IMG border="0" src="%PANELIMAGE%" style="%IMAGESTYLE%">
%AnchorEndTag%%CaptionStuff%
そして、変更するために検索置換を行う
%AnchorStartTag%
と
"<A href=\"foo\" target=\"blank\""
考慮されたテクニックNº3
重要な HTML 要素に ID を与えることを検討しました。
<A id="anchor" href="%PANELLINK%" target="_blank">
<IMG border="0" src="%PANELIMAGE%" style="%IMAGESTYLE%">
</A><BR id="captionBreak">
%CAPTIONTEXT%
次に、HTML DOM パーサーを使用してプログラムでノードを削除します。しかし、信頼できる HTML DOM パーサーに簡単にアクセスすることはできません。HTML が代わりに xhtml である場合、さまざまな組み込み/ネイティブで利用可能な xml DOM パーサーを使用します。
考慮されたテクニックNº4
私が実際にこれまでに持っているものは次のとおりです。
private const String htmlEmptyTemplate =
@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01//EN\"""+Environment.NewLine+
@" ""http://www.w3.org/TR/html4/strict.dtd"">"+Environment.NewLine+
@"<HTML>"+Environment.NewLine+
@"<HEAD>"+Environment.NewLine+
@" <TITLE>New Document</TITLE>"+Environment.NewLine+
@" <META http-equiv=""X-UA-Compatible"" content=""IE=edge"">"""+Environment.NewLine+
@" <META http-equiv=""Content-Type"" content=""text/html; charset=UTF-8"">"+Environment.NewLine+
@"</HEAD>"+Environment.NewLine+
@""+Environment.NewLine+
@"<BODY style=""margin: 0 auto"">"+Environment.NewLine+
@" <DIV style=""text-align:center;"">"+Environment.NewLine+
@" %ContentArea%"+Environment.NewLine+
@" </DIV>" + Environment.NewLine +
@"</BODY>" + Environment.NewLine +
@"</HTML>";
private const String htmlAnchorStartTag =
@"<A href=""%PANELLINK%"" target=""_blank"">";
//Image is forbidden from having end tag
private const String htmlImageTag =
@"<IMG border=""0"" src=""%PANELIMAGE%"" style=""%IMAGESTYLE%"">";
private const String htmlCaptionArea =
@"<BR>%CAPTIONTEXT%";
そして、私はすでに眼球を抉り出したいです。コードで HTML を作成するのは悪夢です。書くのも、デバッグするのも、維持するのも悪夢です。そして、次の人にとっては大変なことになるでしょう。私は次の人なので、別の解決策を望んでいます。