C# remplacement caractères spéciaux fichier xml

Soyez le premier à donner votre avis sur cette source.

Vue 8 233 fois - Téléchargée 326 fois

Description

Ce code permet de remplacer tous les caractères spéciaux dans les fichiers XML: < > & " '.
J'avais trouvé un source qui faisait ça, mais qui ne fonctionnait pas dans tous les cas. Je pense que cette source peut être utile.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

zakariabamou
Messages postés
30
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
24 août 2012
-
bonjour a tout le monde, je cherche a développer un code en C# qui me permet d'utiliser les expressions régulières pour trouver des mots (par exemple ayant la forme PM-ASK-2134) dans un document Word, le code est facile pour des fichiers textes (.txt) mes pour un document Word c'est différent, SVP si qelqu'un a une idée je suis coinsé depuis 2 semaines. merci a l'avance.
voila mon code: (il permet de trouver la chaine "PM-ASK-2134" dans un document word mais je cherche a trouver toutes les ocurences de ce type en utilisant une expression régulière):

object missing = System.Reflection.Missing.Value;
object fileName = @textBox1.Text.ToString();
Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application();
msWord.Visible = false;
Microsoft.Office.Interop.Word.Document nvDoc;
nvDoc = msWord.Documents.Open(ref fileName, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing);

nvDoc.Application.Selection.Find.ClearFormatting();
Regex Tag = new Regex(@"SC-([\w\-.]+)-([\S\-.]+)");
nvDoc.Application.Selection.Find.Text = "PM-ASK-2134";

while (nvDoc.Application.Selection.Find.Execute(
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing))
{
MessageBox.Show(nvDoc.Application.Selection.Find.Text);
}
// else MessageBox.Show("Text not found.");

// Fermer le document
nvDoc.Close(ref missing, ref missing, ref missing);

// Fermeture de word
msWord.Quit(ref missing, ref missing, ref missing);
kiterie
Messages postés
8
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
8 avril 2010
-
Je comprends pas: comment tu fais pour remplacer avec Replace sans utiliser une lecture par XMLDocument? comment tu sais quels caractères sont à remplacer ou non? car tu ne peux pas remplacer tous les caractères.... ceux qui sont dans des balises ne doivent pas être modifiés.
nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
23 -
Les expressions régulieres n'ont rien a voir avec le XML.
Le document n'a pas besoin d'un document XML
kiterie
Messages postés
8
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
8 avril 2010
-
Pour l'expression régulière ok ça peut gérer sans problème les quotes et doubles quotes si le fichier XML est ouvrable en tant que XmlDocument. Seulement elle ne peut pas gérer les balises ouvrantes ou fermantes supplémentaires, ou encore les & contenus entre deux balises.
Or ce genre de caractères empêche l'ouverture du fichier XML sous forme de XmlDocument.
PsyCaDi
Messages postés
123
Date d'inscription
jeudi 14 novembre 2002
Statut
Membre
Dernière intervention
30 mars 2009
-
Ou alors, tu peux utiliser la méthode HttpUtility.HtmlEncode
http://msdn.microsoft.com/fr-fr/library/system.web.httputility.htmlencode.aspx

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.