如何在CDATA节
问题描述:
我知道我可以在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 & "]]>")
答
,只需提供该字符串值XCData构造金正日将通过自身
把CDATA标签Dim myValue As String = "Hello World!"
Dim temp As New XCData(myValue)
答
它的工作原理是这样的:
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")
无法使用CDATA标签将所有内容视为文本。它将包含正确的文本输入,它将是''而不处理它 – Sehnsucht
@Sehnsucht:你是对的。我说得太快了。修复了答案。谢谢。 – Nitram