Remplacer du texte dans HTML

Remplacer du texte dans HTML - C#/.NET managed - Programmation

Marsh Posté le 18-04-2007 à 14:34:31    

Bonjour,
 
J'ai un problème: dans ma DB, j'ai du texte mis en page avec du HTML.
Je dois y rechercher des mots, mais le problème est que si par exemple on tape background, il va trouver toutes les occurences de backgroud y compris dans les balises et non dans le texte "interprété".
 
Comment faire?
 
D'avance merci
 
Ben

Reply

Marsh Posté le 18-04-2007 à 14:34:31   

Reply

Marsh Posté le 18-04-2007 à 14:37:41    

si le code HTML est propre, alors tu peux charger le contenu du champ dans une variable DOM, puis effectuer la rechercher sur "innertext" ou noeud par noeud.
si ton sgbd supporte le XML, tu peux même faire la chose au niveau du sgbd, ce qui devrait être sensiblement plus performant.

Reply

Marsh Posté le 18-04-2007 à 14:40:54    

et si ton html est crade ben tu va avoir le droit de te coder ton parseur ^^

Reply

Marsh Posté le 18-04-2007 à 14:42:37    

En même temps c'est un peu bizarre d'avoir de l'HTML dans une db :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 18-04-2007 à 14:45:21    

le sgdb est MsSql, il y a moyen?
Sinon le HTML dans la DB me permet simplement de garder la mise en page facilement

Reply

Marsh Posté le 18-04-2007 à 14:52:36    

quelle version 2000 ? 2005 ?

Reply

Marsh Posté le 18-04-2007 à 14:54:56    

2005, y'a moyen de tenter de moyenner (noeud par noeud par contre, car y'a pas de innertext je crois).
avec 2000, oublie :D

Reply

Marsh Posté le 18-04-2007 à 15:06:04    

2005

Reply

Marsh Posté le 18-04-2007 à 15:07:39    

donc t'as encore un petit espoir :D

Reply

Marsh Posté le 18-04-2007 à 15:13:41    

Encore une chtit question:  
En pratique si je le fait dans le code je fait comment?
J'utiise la librairie System.Xml et j utilise un XmlReader c'est ca?
Comment je load mon texte dans mon XmltextReader
 
Merci de vos réponses

Reply

Marsh Posté le 18-04-2007 à 15:13:41   

Reply

Marsh Posté le 18-04-2007 à 15:23:52    

Xml.Load(<le resultat la colonne de ton dataset> );
 
Sauf que ça t'oblige à faire le truc ligne par ligne, donc c'est pas top niveau performances. Il vaut mieux faire la recherche direct dans la base.

Reply

Marsh Posté le 18-04-2007 à 15:28:55    

Oui mais le but est de mettre des mots clé en couleur via une balise style <span>  
Donc si mon texte de base est "mon mot clé", je le remplace par

Code :
  1. <span background-color="FF0000"> mon mot clé </span>

 
 

Reply

Marsh Posté le 18-04-2007 à 16:15:32    

Je n'arrive pas a loader le code HTML dans un XmlDocument (manifestement le code est relativement mal foutu) mais hélas nous  n'avons pas la main sur cette partie.  
 
Y a t il autre une solution pour ajouter les balises span (voir réponse précédent) en sachant que si on recherchee le mot "background" par exemple ca remplace uniquement dans le texte et non dans les balises?

Reply

Marsh Posté le 18-04-2007 à 16:48:55    

regexp alors. ça va être plus chaud, mais y'a moyen de moyenner :D
 
shibawis = grosse cloche ? un de ses collègues ?

Reply

Marsh Posté le 18-04-2007 à 17:19:27    

Moi qui ai répondu avec le pseudo d'un collègue...
Ah oui la pour être chaud ca risque d'être chaud avec la regexp!


Message édité par the big ben le 18-04-2007 à 17:21:08
Reply

Marsh Posté le 18-04-2007 à 17:57:47    

faut voir le mon côté des choses : une fois que t'as trouvé des "match", t'as plus qu'à faire des "replace" ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed