Autor Zpráva
Fred
Profil
Potřeboval bych nakopnout nějakým správným směrem v čištění documentů z wordu uložených jako html.
Zjistil sem, že ač se to nezdá tak ten hrozivej výstup nakonec není vůbec špatný. Hlavně kvůli tomu, že umí češtinu a odděluje správně jednopísmené spojky pomocí  . Momentálně píšu texty ve wordu, nechávám to uložit jako html. Odtsraním celou hlavičku, přidám novou hlavičku

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<script>
<!--
function cisti(){
var all=document.getElementsByTagName('*')
for(i=0,j=0;i<all.length;i++){
all[i].removeAttribute('style')
all[i].removeAttribute('class')
all[i].removeAttribute('lang')
all[i].removeAttribute('start')
all[i].removeAttribute('type')
all[i].removeAttribute('valign')
all[i].removeAttribute('align')
}}
window.onload=cisti
//-->
</script>

To odstraní veškerý bordel, nastavím v pspadu natvrdo utf-8 a celký kód do něj překopíruji. Přepíšu metatag kódování na utf-8
Zobrazím to ve Firefoxu, pošlu na bookmarklet rewrite page:
tj.: javascript:document.write(document.documentElement.innerHTML); document.close();
nechám si zobrazit zdrojový kód dám ctrl+a a ctrl+c a vložím to celé do editoru s nastaveným kódováním windows-1250, pořepíšu zpátky metatag na windows-1250 a document je vyčištěný.
Jediné co zbývá je nahradit pár podmíněných komentářů ,<span> a </span>, prázdné odstavce a prázdné <b></b>. Výsledek je čisté validní html, a ač se to dle popisu nezdá jsou to 2 minutky.
Až na jednu drobnost zbývají mi tam sekvence nezalomitelných mezer, jenže když je nahradím replacem v editoru tak zlikviduju tu největší přednost tohohle šíleného postupu a to tu mezeru mezi jednopísmenou předložkou a následujícím slovem.
Sorry za dlouhé vysvětlování.
Dotaz tedy je lze nějak v js nahradit výskyt výrazu &nbsp; pouze pokud je víckrát za sebou tedy &nbsp;&nbsp; a více? Opravdu se omlouvám za dlouhý dotaz.
peta
Profil *
http://interval.cz/clanek.asp?article=3380
treba ti to pomuze
S temi mezerami souhlas, to je od wordu hezky :) to asi taky pouziji, jestli si vzpomenu :)
Mozna bych cistil komplet vsechny tagy, kdyz uz :)

Nejaky program je myslim i na slunecnice.cz
SuE
Profil
zkoušel jsi konvertor od honzy hučína? word 2 html
je to makro, které se připlácne do wordu


s tím nbsp - ve wordu někde v upravy/nahradit je volba speciální znaky (v of 97 je to takhle, v xp je to ještě přes něco jako pokročilé či cosi takového) a tam je pevná mezera - myslím, že je to ^s takže kdybys to párkrát prohnal nahradit 2 mezery jednou, tak by to možná šlo. nejsu si jistá, jestli mluvíme o tom samém, musíš to zkusit :-)
Fred
Profil
peta Díky ten lánek vypadá dobře, s tím bych to mohl ještě trochu dopilovat k dokonalosti.
SuE 1/ten konvertor znám, bohužel je zrada na mé straně, pravděpodobně to dělá utilitka script defender díky níž mi to nefunguje, zakazuje macra, vbs a tak, a tu vypínat po třech letech bez spyware a virů nechci.
2/ :-) Jsem blbec jak prosté: párkrát prohnal nahradit 2 mezery jednou Díky, někdy holt člověka nenapadnou geniálně jednoduché věci.
peta
Profil *
"Dotaz tedy je lze nějak v js nahradit výskyt výrazu &nbsp; pouze pokud je víckrát za sebou tedy &nbsp;&nbsp; a více? Opravdu se omlouvám za dlouhý dotaz."

Jsem to nedocetl (mas to moc dlouhy), jde to samozrejme regularnim vyrazem. Neumim ti napsat presne podobu, nepouzivam, ale mohlo by to vypadat nejak takto
<script>
a="&nbsp;&nbsp;&nbsp;&nbsp;xxx&nbsp;&nbsp;xxx"
b=/[&nbsp;]+/g;
a=a.replace(b,"ABC");
document.writeln("xx yy<br>");
document.writeln("xx"+a+"yy");
</script>

dalo to trosku prace, ale bylo nutne tam pridat jeste hranatou zavorku.
http://home.cogeco.ca/~ve3ll/jstutore.htm
Fred
Profil
Díky, BTW ten tutoriál vypadá velmi dobře.
peta
Profil *
Fred ja vim :) Kdyz jsem to hledal tehdy se smajliky, tak sem nemohl najit solidni popis tech znacek a solidni priklady, ktere by k necemu byli. Vsechno takove teoreticke, ktere se prakticky nikde nepouzivaji :)
Ja nevim, asi to moc boli udelat tabulku s 20 priklady vseho zajimaveho, vsude jen tak 3-5 ani poradne neni videt, co se cim nehrazuje a jaky je vysledek.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0