Validació de documents XHTML

De wikijoan
Salta a la navegació Salta a la cerca

Referències

XHTML: regles i sintaxi

validació online

Editor que integra opcions XHTML:

Firefox, firebug

Una possibilitat és validar XHTML des del Firefox

  • Eines > Desenvolupador Web > Consola d'errors

i des del Firebug, si clico en la consola he d'activar l'opció de Mostra les errades de XML. Però no veig que funcioni ni l'un ni l'altre (TBD)

tidy i curl: eines de consola, automatització

tidy (que en anglès significa netejar és una aplicació de consola per validar codi XML i variants.

curl serveix per transferir URLs, és a dir, que gràcies a curl podem accedir a fitxers online que estiguin a la web.

$ sudo apt-get install curl
$ man tidy
$ man curl

Tidy

-xml: specify the input is well formed XML (input-xml: yes)
-asxml, -asxhtml: convert HTML to well formed XHTML (output-xhtml: yes)
-ashtml: force XHTML to well formed HTML (output-html: yes)

Exemples d'ús:

$ tidy -q -xml /home/joan/M06_WEC/prova_validacio.html
$ tidy -q -asxml /home/joan/M06_WEC/prova_validacio.html
  • opció xml: t'indica quins errors tens
  • opció asxml, ashtml: et corregeix els errors, i només t'indica els warnings que queden

Altres opcions:

  • -output fitxer: escriu a fitxer el fitxer original amb les correccions
  • -file fitxer: escriu en el fitxer els errors i warnings
  • -modify: modifica el fitxer original corregint els errors

També hi ha l'opció doctype per indicar el tipus de document XML:

Type:    DocType
Default: auto
Example: omit, auto, strict, transitional, user

Hi ha la possibilitat de ficar les opcions que fem servir en el fitxer de configuració /etc/tidy.conf

Automatitzar: validar tots els fitxers html d'una carpeta: script tidy_script.sh

#!/bin/bash

for file in *.html;
do 
	echo $file >> tidy.log
	tidy -q -xml $file >> tidy.log 2>&1
	echo >> tidy.log
done

I fem la prova:

$ ./tidy_script.sh

$ cat tidy.log 
demo.html
line 6 column 3 - Error: unexpected </head> in <meta>
line 19 column 3 - Error: unexpected </body> in <p>
line 20 column 1 - Error: unexpected </html> in <p>

prova_validacio.html
line 6 column 3 - Error: unexpected </head> in <meta>
line 16 column 9 - Error: unexpected </p> in <em>
line 18 column 3 - Error: unexpected </body> in <em>
line 19 column 1 - Error: unexpected </html> in <em>

curl

Amb curl podem accedir a recursos que estiguin al núvol:

$ curl -Ls http://arthropoda.joanillo.org/index.php | tidy -q -xml

line 15 column 9 - Error: unexpected </head> in <meta>
line 41 column 4271 - Warning: replacing invalid character code 137
line 41 column 28831 - Warning: unescaped & or unknown entity "&q"
line 41 column 28840 - Warning: unescaped & or unknown entity "&m"
line 41 column 59266 - Warning: replacing invalid character code 137
line 41 column 63632 - Warning: replacing invalid character code 137
line 53 column 40 - Warning: replacing invalid character code 154
line 53 column 60 - Warning: replacing invalid character code 154
line 88 column 17 - Error: unexpected </div> in <ul>
line 147 column 9 - Error: unexpected </body> in <ul>
line 148 column 1 - Error: unexpected </html> in <ul>

Utilitzem un pipe per encadenar les dues aplicacions.


creat per Joan Quintana Compte, novembre 2012