2010-08-11 5 views
1

Lorsque j'ai utilisé linq pour récupérer xml, <CDATA[[]]> est supprimé, ce que je veux obtenir.linq to xml Problème CDATA

Mais quand j'enregistrez le fichier, <CDATA[[]]> devient &lt;CDATA[[]]&gt; dans le fichier xml. Si oui ou non j'ajoute explicitement avec <CDATA[[]]> avant d'enregistrer me donne le même résultat.

Essayé d'ajouter avec &lt;CDATA[[]]&gt; mais me donne toujours le même résultat.
Existe-t-il un autre moyen de montrer <CDATA[[]]> dans le fichier xml? J'utilise Encoding.UTF8.GetBytes() pour écrire au fichier après avoir enregistré le XDocument en utilisant XDocument.Save(System.IO.StringWriter).

Répondre

10

pas 100% sûr de ce que vous demandez ici, mais il semble être comment créer une section CData dans votre XElement. C'est en fait très simple, utilisez simplement l'objet XCData.

Lorsque vous lisez, comme vous avez déjà vu, vous ne la surcharge de l'opérateur CAST pas besoin de faire quelque chose de spécial, extraire les données pour vous, exemple

string myCdata = (string)xe.Element("SomeNode"); 
+0

u donner une idée, mais je ne sais pas vraiment comment appliquer. Afficher un exemple du code ci-dessous, remplacé certains mots sensibles.Au total dans le nœud, j'ai un attribut que sld reste même. var abc = (from def dans XDocument.Descendants ("someNode") sélectionner nouveau { def }). First(); abc.def.SetValue ("]]>"); –

+0

désolé pour le commentaire désordonné, mais je ne suis pas sûr de savoir comment faire un commentaire pour aller nouvelle ligne –

+0

dunno si cela aide C_Range mais cela a résolu mon problème ... thx :) +1 – War