2016-07-29 16 views
0

Ich weiß, dass ich Text in einem CDATA-Abschnitt, wie dies in vb.net hinzufügen:Wie Daten in einem CDATA-Abschnitt parametrisieren

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

aber wie gehe ich in einem Parameterwert:

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

Ich weiß, dass ich das kann, aber ist das der richtige Weg?

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

Antwort

1

einfach den String-Wert zu XCData Konstruktor il geben selbst die CDATA-Tag setzen

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

Es funktioniert wie folgt:

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

Zum Vergleich: MSDN (How to: Embed Expressions in XML Literals (Visual Basic))

EDIT: Also das funktioniert nicht, weil CDATA keine eingebetteten Ausdrücke ermöglichen. Siehe: MSDN (XML CDATA Literal (Visual Basic))

So können Sie mit dem Konstruktor von XCData gelassen werden:

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

Sie beide verwenden können.

Der Visual Basic-Compiler tatsächlich wandelt nur CDATA wörtlichen wie

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

zu

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

Funktioniert nicht CDATA-Tag behandelt alle Inhalte als Text. Es wird genau den hier eingegebenen Text enthalten. Es wird '<% = meinWert%>' ohne es zu bearbeiten – Sehnsucht

+0

@Sehnsucht: Sie haben Recht. Ich habe zu früh gesprochen. Die Antwort wurde korrigiert. Vielen Dank. – Nitram