Convertir une page HTML en XML (encoding iso-8859-1)
Problème :
J'avais écrit une page en HTML sous Dreamweaver, et je veux maintenant un document XML. Changer l'extension ne suffit pas car & (é), & (à), et autres bloquent la 'compilation' XSLT.
Solution :
J'ai alors écrit un script SED (programme de traitement de chaîne de caractère) :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | ####################################
### Script SED pour passer du HTML 4.0 au XML ###
### Par Haypo - 24 juin 2003
#####################################
 
### Lettre a accentuée ###
s/& agrave;/à/g
s/& acirc;/â/g
 
### Lettre c accentuée ###
s/& ccedil;/ç/g
 
### Lettre e accentuée ###
s/& eacute;/é/g
s/& egrave;/è/g
s/& ecirc;/ê/g
 
### Lettre i accentuée ###
s/& icirc;/î/g
s/& iuml;/ï/g
 
### Lettre o accentuée ###
s/& ocirc;/ô/g
 
### Lettre u accentuée ###
s/& ucirc;/û/g
s/& ugrave;/ù/g
 
### Autres caractères ###
s/& quot;/"/g
 
### Balises HTML 4 -> XML ###
s!<br>!<br/>!g
s!& sup2;!²!g | 
 (j'ai ajouté des espaces dans les "caractères" HTML à cause du forum developpez.com, il faut les effacer : '@ quot;' => '@quot;' avec @=&)
Vous pouvez trouver SED sur :
http://www.gnu.org/software/sed/
Sous Windows, il faut installer Cygwin :
http://www.cygwin.com/
Ou mieux (plus léger) : MinGW32 :
http://www.mingw.org/
(installer MinGW Runtime + MSys)
Ce script change beaucoup de caractère, et transforme quelques balises HTML4 en XML (<br> devient <br />). Mais il faut finir le travail à la main :
- balise <img> à refermer (on ajoutera au passage l'attribut alt s'il a été oublié)
- balise <input>. D'ailleurs pour cocher un 'radio', on utilisera l'attribut [b]checked] :
	
	<input type="radio" name="nom" value="valeur" checked="checked">blablabla</input>
 Restera encore les balises & & & et &. Pour cela, on ajoutera au début du fichier XML :
	
		
			
			
				<!DOCTYPE perso [
   <!ENTITY nbsp " ">
   <!ENTITY amp "&">
   <!ENTITY lt "<">
   <!ENTITY gt ">">
]>
			
		
 
	 
 Note : '&' est la valeur décimale du caractère '&' ;-)
@+ Haypo
						
					
Partager