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 :
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
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);
Or, dans mon nouveau standard, je dois noter les listes ainsi : <ul> </ul>, ou <ol></ol>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <liste typedeliste="listeOrdonnee"> <liste typedeliste="listeNonOrdonnee">
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.
Partager