2010-08-27 2 views
0

je me demandais si quelqu'un sait ce qui se passe avec ce code html chaîne:Quel est le problème avec cette mise en forme de chaîne?

<object height=\\\"38\" + \"5\\\" width=\\\"64\" + \"0\\\" classid=\\\"clsid:D27CDB6E- 
AE6D-11cf-96B8-444553540000\\\" id=\\\"movie_player\\\" ><param name=\\\"movie\\\" 
value=\\\"http:\\/\\/s.ytimg.com\\/yt\\/swf\\/watch_as3-vfl186120.swf\\\"><param 
name=\\\"flashvars\\\" value=\\\"...." allowscriptaccess=\\\"always\\\" 
allowfullscreen=\\\"true\\\" bgcolor=\\\"#000000\\\" \\/> 

Il semble horrible ... Il est intégré dans une fonction JavaScript pour être rendu plus tard à la page. Quelqu'un peut-il me dire comment je peux le nettoyer en utilisant say Html Agility Pack ou éventuellement RegEx bien que cela semble malpropre!

Un aspect important est d'obtenir le height=\\\"38\" + \"5\\\" pour devenir height="385" etc. Je peux me débarrasser des barres obliques sans aucun problème.

Vraiment apprécier toute orientation.

Edit: à la fin ce que j'utilisé pour compléter les balises

 objectNodeFormat.Replace(@"\", ""); 
     objectNodeFormat.Replace(@" + ", ""); 
     objectNodeFormat.Replace(@"""""", ""); 

Merci encore.

+0

lol ........... –

Répondre

1

On dirait que la double barre oblique inversée est destinée à s'échapper de la barre oblique et la troisième barre oblique inversée pour échapper à la citation ... wow! il ne semble désordre .... dire ... tout ce truc dans une chaîne StringBuilder et utilisez la Retirez Remplacer la méthode de l'objet StringBuilder pour dépouiller tous les antislashs ...

StringBuilder sbRemove = new StringBuilder(); 
sbRemove.Append(@"<object height=\\\"38\" + \"5\\\" width=\\\"64\" + \"0\\\" classid=\\\"clsid:D27CDB6E- 
AE6D-11cf-96B8-444553540000\\\" id=\\\"movie_player\\\" ><param name=\\\"movie\\\" 
value=\\\"http:\\/\\/s.ytimg.com\\/yt\\/swf\\/watch_as3-vfl186120.swf\\\"><param 
name=\\\"flashvars\\\" value=\\\"...." allowscriptaccess=\\\"always\\\" 
allowfullscreen=\\\"true\\\" bgcolor=\\\"#000000\\\" \\/>"); 
sbRemove.Replace(@"\\\", ""); 
sbRemove.Replace(@"\"", ""); 

Modifier : Modifié pour remplacer - mea culpa

+0

Etes-vous sûr que c'est la méthode Remove. Il veut un 'int' comme un index au lieu de prendre le caractère que je veux le retirer. – Alex

+0

J'ai utilisé: 'NodeFormat.Replace (@" \\\ "," ");' à la place de Remove dans ce cas. Également utilisé pour trier '" 38 \ "+ \" 5 \\\ "' problème que j'ai. À votre santé! – Alex

Questions connexes