web-dev-qa-db-fra.com

Comment puis-je encapsuler la valeur d'un XElement! [CDATA [***]]?

C'est lors de l'utilisation de XDocument à partir de .net.

Je pensais que cela pourrait fonctionner ...

xElement.Element(elementName).Value = new XCData(value).ToString();

... mais ça sort comme ça ...

<name>&lt;![CDATA[hello world]]&gt;</name>
43
Ian Warburton

Essayer

xElement.Element(elementName).ReplaceNodes(new XCData(value));
37
Ral Zarek

XCData est un type de XNode . En tant que tel, vous devriez essayer de Ajouter le à l'élément, plutôt que de définir la valeur (qui est documentée pour être le contenu texte aplati de l'élément):

xElement.Element(elementName).Add(new XCData(value));
41

Si vous créez le XElement (vs le modifiant), vous pouvez aussi simplement l'ajouter directement dans le constructeur comme le contenu comme ceci:

new XElement(elementName, new XCData(value));
37
jigamiller