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 回答