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 :

Manipulation sur des string : fichier XML


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut Manipulation sur des string : fichier XML
    Bonjour / Bonsoir,

    Je travaille actuellement sur un application utilisant un fichier Xml comme template.
    Lors de la lecture du template, afin de pouvoir procéder à la réécriture avec les bonnes données, je dois remplacer certaines parties de ma chaine de caractères.

    Voici un exemple de chaines sur lesquelles je dois réaliser des modifications :
    <Title>is_BenefitType</Title>

    <Value>is_Position</Value>, <Value>is_Department</Value>, <Value>is_Company</Value>
    Prenons le premier exemple. La chaine doit être modifiée de sorte à pouvoir récupérer le texte entre les balises <Title>, ainsi, je récupère la valeur correspondante via mon objet et l'insère à la place de "is_BenefitType" en supprimant les balises.
    "<Title>is_BenefitType</Title>" devient donc "Hospitality".

    Même chose en plus compliqué pour le deuxième exemple, sauf que je dois conserver ce qui est en dehors des balises.
    Par exemple, "<Value>is_Position</Value>, blabla, <Value>is_Department</Value>, <Value>is_Company</Value>" devient "IT Consultant, blabla, IT, CB".

    Jusque là, je récupère le texte sous forme de chaine en arrivant à cette étape, mais à la base j'utilise un XmlReader, je peux donc utiliser mon Reader pour continuer le traitement.
    Je suis preneur de toute solution viable. En attendant je vais laisser mon cerveau reposer ce soir, je reprendrai mes tentatives demain matin.

    Merci par avance pour toute aide apportée.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2012
    Messages : 80
    Par défaut
    La documentation Microsoft n'est pas suffisante pour ton cas?

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.95).aspx

  3. #3
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    Pour le premier exemple, j'arrive à m'en débrouiller, pour le second c'est plus tricky, je galère. Si la doc me suffisait, je ne posterais pas sur le forum.

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 968
    Par défaut
    Bonjour,

    Tu n'arrivera pas à parser ton XML à l'aide d'un XmlReader ou de quoi que soit prévu pour manipuler du XML pour la simple raison que le format que tu décrit n'est pas du XML.
    Un fichier XML ne comporte pas de virgule entre les nœuds et encore moins un texte libre !

    Tu pourrais par contre définir un nœud pour indiquer qu'une partie du contenu ne doit pas être changé.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Title>is_BenefitType</Title>
    <Value>is_Position</Value>
    <NoChange>,</NoChange>
    <NoChange>blabla,</NoChange>
    <Value>is_Department</Value>
    <NoChange>,</NoChange>
    <Value>is_Company</Value>

  5. #5
    Membre confirmé Avatar de nanooby
    Homme Profil pro
    IT Consultant
    Inscrit en
    Mai 2014
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : IT Consultant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2014
    Messages : 103
    Par défaut
    La partie que je souhaite parser n'est en effet plus du XML, c'est là que ça devient donc compliqué. Le reste en est pourtant :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <Root>
    	<ReportTitle>Gift and Hospitality</ReportTitle>
    	<Paragraph>
    		<Header>Summary</Header>
    		<Text></Text>
    	</Paragraph>
    	<Table>
    		<Row>
    			<Column><Title>is_Reference</Title></Column>
    			<Column><Value>is_Reference</Value></Column>
    		</Row>
    		<Row>
    			<Column><Title>is_Position</Title></Column>
    			<Column><Value>is_Position</Value>, <Value>is_Department</Value>, <Value>is_Company</Value></Column>
    		</Row>
    	</Table>
    </Root>
    Un fois arrivé dans le node Column, je dois pouvoir détecter son contenu pour savoir si j'ai à faire à un Title ou une Value . Je dois ensuite parser pour remplacer les parties par des valeurs.

    Je ne peux me permettre de changer le template.
    Comment parser simplement ces chaines?

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Tu pourrais utiliser les expressions régulières pour trouver tes balises et remplacer le texte.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/09/2009, 09h35
  2. Réponses: 2
    Dernier message: 18/09/2008, 14h25
  3. agir sur des string
    Par 20100. dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/02/2008, 14h49
  4. Travail sur des Strings
    Par Pingvince dans le forum Général Python
    Réponses: 16
    Dernier message: 25/12/2007, 04h22
  5. Optimisation mémoire sur des String
    Par CyberChouan dans le forum Langage
    Réponses: 6
    Dernier message: 25/02/2007, 20h25

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