2010-09-13 19 views
2

Après avoir vérifié un fichier Xps i remarqué que la chaîne dans le fichier Xps <> est converti en &lt;&gt;Existe-t-il une fonction intégrée dans NET Framework qui code une chaîne en unicode XML valide?

est donc une fonction il intégré dans le cadre .Net qui pourrait faire ce travail pour moi? S'il n'existe pas quels caractères <> devrais-je échapper dans myOwn?

J'essaie d'implémenter une recherche dans un fichier xps, mais la recherche de <> au lieu de &lt;&gt; ne renvoie rien.

MISE À JOUR: au moins je l'ai trouvé the list here of xml document escape characters

Répondre

2

XMLTextWriter est ce que vous cherchez. Vous devriez éviter d'utiliser l'une des méthodes HTMLEncode (il y en a plusieurs) à moins que vous ne codiez réellement votre texte pour l'utiliser dans un document HTML. Si vous codez du texte à utiliser dans un document XML (y compris XHTML), vous devez utiliser XMLTextWriter.

Quelque chose comme ça devrait faire l'affaire:

StringWriter strWriter = new StringWriter(); 
XmlTextWriter xmlWriter = new XmlTextWriter(strWriter); 
xmlWriter.WriteString('Your String Goes here, <and>, as well as other special chars will be properly encoded'); 
xmlWriter.Flush(); 

Console.WriteLine("XML Text: {0}", strWriter.ToString()); 

Voir aussi this other stackoverflow discussion.

0

Non construit mais Microsoft a sorti une bibliothèque de scripts d'un site anti-cross qui devrait aider. Il ajoute de nouvelles fonctionnalités au-delà de la méthode Html.Encode de .NET, y compris une méthode de codage XML.

Tutorial

Download

1

HtmlEncode devrait travailler pour vous.
&lt; et &gt; n'est PAS unicode. Ils sont juste des caractères HTML/XML échappés.

Edit:
Venez y penser, vous pouvez rouler votre propre méthode xmlEncode car il n'y a que 5 predefined entities en XML. En HTML il y a 252.