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) :
1 2 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