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 :

Renommer une balise XML si elle possède un attribut spécifique


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 1
    Par défaut Renommer une balise XML si elle possède un attribut spécifique
    Bonjour,

    Je travaille sur un script de conversion d'un fichier d'un standard XML vers un un autre standard. Avec XML reader j'ai récupéré les éléments du fichier source, et avec StreamWriter.Writeline, je réécris le fichier source dans un nouveau fichier en faisant les modifications nécessaires avec regex. Par exemple, les balises <paragraphe> du fichier source deviennent <p> dans mon nouveau fichier. Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    foreach (String moncontenu in malistedecontenus)
     
    {
    StreamWriter swContenu;
    swContenu= new StreamWriter(Settings.Default.OUTPUT + fichier_converti() + ".xml");
     
    String strfinal = "";                                           
     
    strfinal = Regex.Replace(moncontenu, "<paragraphe (.*?)>", "<p>");
    strfinal = Regex.Replace(strfinal, "</paragraphe>", "</p>"); 
    swContenu.WriteLine(strfinal);
    Mon problème est que je ne peux pas faire ça pour les listes car la différence entre liste numérotée et non numérotée se fait avec un attribut dans mon fichier source, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <liste typedeliste="listeOrdonnee">
    <liste typedeliste="listeNonOrdonnee">
    Or, dans mon nouveau standard, je dois noter les listes ainsi : <ul> </ul>, ou <ol></ol>.
    C'est donc la balise de fin qui me pose problème, je ne trouve pas de solution pour pouvoir la convertir correctement car je ne peux pas convertir par défaut une balise de fin "</liste> en </ul> ou </ol>.

    J'ai eu l'idée d'utiliser xmlReader pour cibler les éléments avec l'attribut recherché avant d'appliquer mon regex, mais je n'arrive à modifier correctement que la balise ouvrante.


    Si quelqu'un a déjà fait quelque chose de similaire ou a une idée de quelque chose qui pourrait m'aider, je vous remercie par avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Par défaut
    Plutôt qu'une approche Regex tu gagnerais à utiliser XmlDocument et Xpath qui sont dédiées à ce genre de traitement.
    Tu trouveras facilement de nombreux exemples d'utilisation en C#.

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, 13h25
  2. [XML][PHP]Extraire balise img dans une balise xml
    Par thierry232323 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/10/2006, 13h25
  3. Ajout d'une balise XML
    Par spynux dans le forum Langage
    Réponses: 5
    Dernier message: 31/05/2006, 13h06
  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, 12h59
  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, 15h54

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