C# remplacement caractères spéciaux fichier xml

Soyez le premier à donner votre avis sur cette source.

Vue 8 447 fois - Téléchargée 360 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

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);
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.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Les expressions régulieres n'ont rien a voir avec le XML.
Le document n'a pas besoin d'un document XML
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.
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
Afficher les 6 commentaires

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.