IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Expression régulière entête xml [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    info
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : info

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Par défaut Expression régulière entête xml
    Bonjour je souhaiterai réaliser une regex pour cette chaine : <? xml version="1.0" encoding="UTF-8" ? >.
    Le problème se pose surtout pour le caractère " car dans le code c# des \ sont ajoutés.

    Sinon y a t'il un autre moyen pour valider l'entête xml ?

    Merci

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Avec le header suivant :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <? xml version="1.0" encoding="UTF-8" ?>
    La regex suivante fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex xmlHeaderRegex = new Regex(@"^<\?\sxml\sversion=""(?<version>.*)""\sencoding=""(?<encoding>.*)\""\s\?>$");
    Le problème ne vient pas des '\' qui sont ajoutés à ton header (ce sont des caractères d'échappement), mais plutôt de ta Regex .

  3. #3
    Membre confirmé
    Profil pro
    info
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : info

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Par défaut
    Bonjour et merci mais il reste un problème ça ne matche pas
    Voici la chaine exacte passée :

    "<?xml version=\"1.0\" encoding=\"utf-8\"?>"

  4. #4
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Si tu essayes de piger la requête, tu vois qu'il suffit de mettre les espaces après "<?" et avant "?>" facultatifs pour que ça matche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex xmlHeaderRegex = new Regex(@"^<\?\s?xml\sversion=""(?<version>.*)""\sencoding=""(?<encoding>.*)\""\s?\?>$");

  5. #5
    Membre confirmé
    Profil pro
    info
    Inscrit en
    Mars 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : info

    Informations forums :
    Inscription : Mars 2007
    Messages : 51
    Par défaut
    Ok merci ça marche désolé je débute.
    Encore une question à quoi sert cette partie (?<version>.*)"".

    Merci

  6. #6
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Citation Envoyé par marqs Voir le message
    Ok merci ça marche désolé je débute.
    Encore une question à quoi sert cette partie (?<version>.*)"".

    Merci
    Ça te permet d'accéder aux groupes de ton Match via des noms (ici "version") et pas via un index. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xmlHeaderRegex.Match(testedHeader).Groups["version"];
    // Plutôt que
    xmlHeaderRegex.Match(testedHeader).Groups[unIndex];
    Cela s'appelle un groupe nommé . Tu trouveras plus d'explications ici.

    Bon apprentissage .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. expression régulière java et xml
    Par jmturc dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 07/06/2012, 17h37
  2. Trouver une expression régulière pour les valeurs des noeuds XML
    Par Motin dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 05/10/2011, 17h51
  3. Réponses: 4
    Dernier message: 22/11/2008, 08h28
  4. [RegEx] Expression régulière pour balises XML
    Par vodasan dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2008, 08h31
  5. [débutant] XML ou expressions régulières ?
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 28/10/2004, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo