Todos nós conhecemos aquele algoritmo manhoso para validar o NIF e já o
escrevemos em várias linguagens, coisa e tal, mas... que tal em xpath?
Kids, do not try this at home:
/foo[string-length(nif)=9 and string((11 - (substring(nif,1,1)*9+
substring(nif,2,1)*8+ substring(nif,3,1)*7+ substring(nif,4,1)*6+
substring(nif,5,1)*5+ substring(nif,6,1)*4+ substring(nif,7,1)*3+
substring(nif,8,1)*2) mod 11) * number((11 - (substring(nif,1,1)*9+
substring(nif,2,1)*8+ substring(nif,3,1)*7+ substring(nif,4,1)*6+
substring(nif,5,1)*5+ substring(nif,6,1)*4+ substring(nif,7,1)*3+
substring(nif,8,1)*2) mod 11) < 10) ) = substring(nif,9,1)]/nif/text()
Lindo, funcionou à primeira e tudo ;-)
Testar num input tipo "<foo><nif>123123123</nif></foo>"
I have yet to see any problem, however complicated, which, when you
looked at it in the right way, did not become still more complicated.
-- Poul Anderson
Received on Thu Aug 5 23:46:47 2004
This archive was generated by hypermail 2.1.8 : Thu Dec 30 2004 - 23:07:46 UTC