J'ai une chaîne dans la base de données qui contient des chevrons (inférieur à/supérieur à). J'ai besoin d'insérer la chaîne dans un XElement, puis de le sérialiser sur un périphérique client. Maintenant, les entités html sont évidemment codées donc les parenthèses apparaissent comme <et> et la meilleure façon est d'utiliser le HttpUtility.HtmlDecode pour décoder les entités sur le périphérique client. Mais je me demande s'il y a de toute façon à échapper à l'encodage et à envoyer ces entités telles quelles?C Sharpise XML avec des entités HTML
1
A
Répondre
0
Utilisez SecurityElement.Escape Méthode
0
Si vous définissez la propriété XElement.Value, oui, il sera codé quand il est publié en feuilleton. Mais lorsque vous le désérialisez sur le client et accédez à la propriété XElement.Value, il ne sera pas codé. Voir cet exemple rapide:
var htmlData = "<some data>";
XElement element = new XElement("data");
element.Value = htmlData;
var xml = element.ToString();
var data = element.Value;
if (data != htmlData)
throw new NotImplementedException("this didn't work");
Si vous définissez un point d'arrêt, vous verrez la variable « xml » ne contient la chaîne html codée.
Cela le transforme toujours en & lt; et & gt; (ne le conserve pas comme < and >) – Shahid
Vous devez gérer ceci sur le client. Avec < and > xml sera mal formé. –