2016-07-29 54 views
0

我知道我可以在vb.net中添加文本CDATA节这样的参数化数据:如何在CDATA节

Dim temp As System.Xml.Linq.XCData = <![CDATA[Hello World!]]> 

但我怎么传递参数值:

Dim myValue as string = "Hello World!" 
Dim temp As System.Xml.Linq.XCData = <![CDATA[myValue]]> 

我知道我可以做到这一点,但这是正确的做法吗?

Dim myValue as string = "Hello World!" 
Dim temp As New System.Xml.Linq.XCData("<![CDATA[" & myValue & "]]>") 

回答

1

,只需提供该字符串值XCData构造金正日将通过自身

把CDATA标签
Dim myValue As String = "Hello World!" 
    Dim temp As New XCData(myValue) 
-1

它的工作原理是这样的:

Dim myValue as string = "Hello World!" 
Dim temp As System.Xml.Linq.XCData = <![CDATA[<%= myValue %>]]> 

参考:MSDN (How to: Embed Expressions in XML Literals (Visual Basic))

编辑:这样是不行的,因为CDATA不允许任何嵌入式表达式。请参阅:MSDN (XML CDATA Literal (Visual Basic))

所以,你留下的XCData构造:

Dim myValue As String = "Hello World!" 
Dim temp As New XCData(myValue) 

您可以同时使用。

Visual Basic编译器实际上只是转换一个CDATA文字像

Dim temp = <![CDATA[foo]]> 

Dim temp = New XCData("foo") 
+1

无法使用CDATA标签将所有内容视为文本。它将包含正确的文本输入,它将是'<%= myValue%>'而不处理它 – Sehnsucht

+0

@Sehnsucht:你是对的。我说得太快了。修复了答案。谢谢。 – Nitram