0

少し前に、私はこの質問をしました:

VB.NET には、c# と同等の複数行の文字列宣言構文がありますか?

ここでは、VB.NET の XML リテラルについて紹介しました。この構文を使用すると、@シンボルを使用して c# で使用できる複数行の文字列構文をシミュレートできました。しかし、私は思わぬ障害に遭遇しました。Visual Studio のお腹の中に入れ<たり>、テキストに入れたりするのはうまくいかないようです。例として、次のコードを取り上げます。

Dim Sql As String = <a><![CDATA[]]>
                        <text instead pointy brackets fails>
                    </a>.Value

どういうわけかこれらの大括弧をエスケープするか、リテラルに気にしないように伝えることはできますか?

4

2 に答える 2

4

XML リテラルは、XMLデータ専用です。&lt;左山かっこをエスケープするために使用できますが、本当にXML データが必要でない限り、XML リテラルをまったく使用しないことをお勧めします。

于 2012-09-21T16:14:58.120 に答える
2

CDATA セクション内にテキストを配置する必要があります。

Dim Sql As String = <a><![CDATA[
<text instead pointy brackets fails>
]]></a>.Value

Console.WriteLine("===")
Console.WriteLine(Sql)
Console.WriteLine("===")

出力する必要があります:

===

<text instead pointy brackets fails>

===

CDATA はテキストの先頭のスペースも保持することに注意してください。そのため、括弧付きのテキストからそれらを削除しました。

于 2013-04-16T13:56:19.173 に答える