2009-05-22 6 views
1

Ich möchte Text im cdata Abschnitt ersetzen, aber wenn ich einfach versuche, Text hinzuzufügen, verliere ich CDATA Definition.Wie aktualisiere ich Text innerhalb CDATA

Ich habe eine XML wie folgt aus:

<title><![CDATA[string]]></title> 

Wenn ich versuche, dieses Feld mit neuen Wert zu aktualisieren:

myXmlNode.SelectSingleNode("title").InnerText = TextBoxName.Text; 

Ausgang ist

<title>string</title>  

Wie kann ich halten es als CDATA?

Antwort

2

Das Titelelement wird ein CData Kind hat, die wie so gegossen werden muss: -

((XmlCDataSection)myXmlNode.SelectSingleNode("title").FirstChild).Value = TextBoxName.Text 
+1

Ich vermutete, dies war der Weg, es zu tun, obwohl Sie mich zu mir schlagen t während der Überprüfung der XmlCDataSection-Klasse. – Noldorin

+0

Beat mich auch, obwohl es eine (offensichtliche) Besetzung erfordert. –

+0

@Matthew: Braucht etwas anderes eine Besetzung? Ich sehe es nicht? – AnthonyWJones

1

ich tun würde:

myXmlNode.SelectSingleNode("title").FirstChild.InnerText = TextBoxName.Text; 

Auf diese Weise müssen Sie mit der nicht umgehen CDATA-Format in Ihrem Code (bearbeiten: hart codieren <! [CDATA [funktioniert nicht, wie von Anthony hingewiesen)