Bonjour,
J'ai un fichier xml qui ressemble à ceci :
Mon but est d'enlever toutes les balises paragraphe. Je souhaite donc obtenir ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <Root> <Item> <Text> <p>Ceci est du texte au format <strong>html</html></p> <p>Ceci est <em>du texte</em> au format html</p> </Text> ... </Item> ... </Root>
Le problème est que cet xml est parsé dans un XDocument et je ne vois pas de propriété ou méthode de XElement qui me permette de faire une tel transformation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <Root> <Item> <Text> Ceci est du texte au format <strong>html</html> Ceci est <em>du texte</em> au format html </Text> ... </Item> ... </Root>
Pour l'instant, je n'ai pas trouver mieux que de charger un XmlDocument à partir de mon instance de Xdocument (xdoc). En effet, avec les XmlNode, la propriété InnerXml me permet de supprimer les paragraphes comme ceci :
Ca fonctionne bien, mais ça m'oblige à charger un XMlDocument rien que pour cette transformation... J'aimerais donc savoir si il n'y a pas un manière de faire la même chose avec les objets XDocument, XElement,...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 XmlDocument doc =new XmlDocument(); doc.LoadXml(xdoc.ToString()); foreach (XmlNode node in doc.SelectNodes("//*[p]")) { StringBuilder sb = new StringBuilder(); foreach (XmlNode p in node.SelectNodes("./p")) { sb.Append(p.InnerXml + "\r\n"); node.RemoveChild(p); } node.InnerXml = sb.ToString(); }
merci d'avance pour votre aide.
Partager