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 :

Récupération d'un char depuis une balise XML


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut Récupération d'un char depuis une balise XML
    Bonjour,

    Pour un parser de texte, j'ai besoin de stocker une liste de characters de séparation dans un fichier XML.

    J'utilise XmlTextReader. Le problème, c'est que le membre "Value" de cette classe me donne accès à la valeure Text d'une balise sous forme de sting. Or, mes charactères de sépartaion sont des char et non pas des string. Donc le charactère '\n' devient un string contenant 2 charactères: '\' et 'n'. Idem pour "\t", ...

    Est ce que le seul moyen de régler ce problème est d'utiliser une méthode "bourin" pour détecter les valeurs de plus d'un charactère du genre:

    if( value[0]=='\' && value[1]=='n' )
    character = '\n'

    ?

    Merci.

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Salut

    si j'ai bien compris t'as

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <TAG>
    aaa\n
    bbb\n
    ccc\n
    </TAG>
    Si c'est les valeurs aaa, bbb... que tu veux obtenir, tente un Split

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut
    Non, ce n'est pas le fichier XML que je veut parser mais le contenu d'un richtextbox. Je n'est pas de problème de ce côté là. J'ai une arrayList qui contient la liste de mes séparateurs qui me servent pour mon split.
    Dans mon code j'ai mis en dûr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    m_SeperatorsList.Add('\n');
    m_SeperatorsList.Add(' ');
    m_SeperatorsList.Add('.');
    m_SeperatorsList.Add('=');
    m_SeperatorsList.Add('\t');
    etc ...
    suivi de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_SperatorsArray = (char[])m_SeperatorsList.ToArray(typeof(char));
    Mon porblème, c'est que je veut rendre mon parsing configurable via un fichier XML. Je veux donc stocker la liste des séparateurs dans un fichier XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <Separators>
    		<Separator>\n</Separator>
    		<Separator> </Separator>
    		<Separator>.</Separator>
    		<Separator>=</Separator>
    		<Separator>\t</Separator>
    		<Separator>/</Separator>
    		<Separator>*</Separator>
    		<Separator>:</Separator>
    		<Separator>(</Separator>
    		<Separator>)</Separator>
    		<Separator>"</Separator>
    		<Separator>;</Separator>
    		<Separator>,</Separator>
    		<Separator>{</Separator>
                    <Separator>}</Separator>
    		<Separator>\\</Separator>
    </Separators>
    et les utiliser dans mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    case "Separator":
    {
      m_SeperatorsList.Add(objXmlTextReader.Value); 
    }
    break;
    Mais quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_SperatorsArray = (char[])m_SeperatorsList.ToArray(typeof(char));
    J'ai un invalidCastException parce que je pense que mes "\n" sont stocké sous forme de string de deux charactères dans mon arrayList (m_SeperatorsList). Je n'ai pas ce problème quand je fais mes Add() en dûr dans l'arrayList grâce aux '\n' (et non pas "\n").

  4. #4
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    hum

    Etant donne que dans le code RTF lui meme \n et les autres sont aussi stockes sous la forme de deux caracteres (suffit d'editer du rtf dans notepad pour s'en rendre compte)
    Etant donne que t'utilise de tout dans tes separateurs (*....)

    Je pense que tu devrais fonctionner avec des separateurs en String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_SperatorsArray = string[])m_SeperatorsList.ToArray(typeof(string));
    T'as une raison particuliere pour vouloir te maintenir au Char? J'ai deja fait un parseur de RTF (il y a tres longtemps)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 81
    Points
    81
    Par défaut
    La méthode split prend un tableau de char en argument.

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

Discussions similaires

  1. Récupération à l'intérieur d'une balise XML
    Par ironman_2312 dans le forum VBScript
    Réponses: 2
    Dernier message: 08/02/2007, 14h25
  2. Ajout d'une balise XML
    Par spynux dans le forum Langage
    Réponses: 5
    Dernier message: 31/05/2006, 14h06
  3. [Conception] Appel de methode depuis une conf xml de scenario
    Par jesus144 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/03/2006, 13h56
  4. [xsl] mauvaise interprétation du contenu d'une balise XML
    Par Cédric B. dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/01/2006, 13h59
  5. [JDOM] données un attribut à une balise xml
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 09/07/2004, 16h54

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