Autor Zpráva
Gubo
Profil *
Mam nasledujuci problem.

V textaree mam umiestnene nejake to XML, teda subor je ulozeny ako XML a pomocou textarey ho mozno editovat. Samozrejme XML elementy nie su elementami XHTML, takze validatoru sa to nepaci. Je nejaky sposob ako to spravit validne? (zotrvanie XML elementov v textaree je nutnostou)
Chamurappi
Profil
Reaguji na Gubo:
Můžeš použít <![CDATA[ … ]]> sekci. Užíváš-li opravdu XHTML, musí spolehlivě fungovat.
Gubo
Profil *
No to sice prejde, lenze ja nechcem mat v textarea <![CDATA[ a ked to tam dam, zobrazi sa aj to ...
Chamurappi
Profil
Reaguji na Gubo:
Protože používáš ve skutečnosti HTML. Kdybys užíval XHTML, fungovalo by to tak, jak chceš. W3C validátor se mylně domnívá, že o syntaxi rozhoduje <!doctype> deklarace, prohlížeče nikoliv. Proč se vůbec snažíš o validitu?

Potřebuješ-li zobrazit řídicí znaky (a v případě <textarea> i projít validátorem), zapiš je entitou. Místo „<“ piš „&lt;“.
Gubo
Profil *
Nie, pouzivam XHTML - chcete povedat, ze v XHTML o syntaxi nerozhoduje DTD?

Proč se vůbec snažíš o validitu - básnická otázka? Každý web by mal byť validný ...

Navrhnute riesenie pomocou entit mi napadlo, ale znamenalo by to najprv nacitat subor, nahradit vsetky <> &lt; a gt, po editacii opat nahradzat na <> ... A to vznika problem, ze niektore realne boli entitami lt a gt, niektore boli tagy. Vec sa ma tak, ze ide o editaciu XML, ktore bolo vygenerovane. Cez toto rozhranie sa daju editovat aj existujuce XML subory, tam som to osetril inak (nie je dolezite ako), ale tu by ten postup nefungoval. Teraz vsak nacitavam do textarey XML subor a mohol by som spravit sialeny skript, ktory by zaznamenal pozicie entitovych a realnych lomenych zatvoriek, detekoval by Pridanie novych a preindexoval ... co ako iste uznate by nebolo jednoducho zalezitostou.
Ciste toto riesenie sa mi teda vobec nepozdava (ba priam nie je pouzitelne) a to uz by som radsej pristupil k definovaniu vlastneho DTD, co tiez nie je 2xvyhra, nakolko zastavam nazor, ze web ma byt v XHTML, nie XML (nehladiac na dalsie problemy).

Takze este raz - <textarea><![CDATA[ obsah ]]></textarea> - Aj <![CDATA[ ... bude v editovacom poli textareay - nechcene spravanie.

Existuje postup, ci uz pomocou CDATA, alebo bez, aby som nacital do textarey XML subor, ktory obsahuje tak realne elementy (rozneho a nepravidelneho stupna vnorenia), tak lt a gt entity a zaroven bol validnym XHTML Strict 1.0?
Str4wberry
Profil
No jistě. Např. v PHP lze použít funkci htmlspecialchars.
tiso
Profil
Gubo - teba trápi validácia neprázdneho formulára? :-)))
bohyn
Profil
Existuje postup, ci uz pomocou CDATA, alebo bez, aby som nacital do textarey XML subor, ktory obsahuje tak realne elementy (rozneho a nepravidelneho stupna vnorenia), tak lt a gt entity a zaroven bol validnym XHTML Strict 1.0?
V PHP je na to funkce htmlspecialchars()

po editacii opat nahradzat na <>
Prohlizece vi co s tim maji udelat.
Gubo
Profil *
Este raz - Ziadne nahradzanie nie je riesenim, pretoze nacitam subor do textarey, ktory obsahuje tak elementove <>, aj entity lt a gt a tento subor editujem, pricom po editacii sa skruktura moze (mierne aj vyrazne zmenit) ...

T.j. v danom retazci potrebujem menit NIEKTORE lomene zatvorky na entity, NIEKTORE nie a neviem vopred ktore. Preto cokolvek co v danom retazci robi taketo nahrady nie je pre tento pripad pouzitelne.
Gubo
Profil *
Alebo, ak by niekto nepochopil

'<' (less than) becomes '&lt;'
'>' (greater than) becomes '&gt;'

toto je nechcene spravanie u niektorych zatvoriek a chcene u inych.
Str4wberry
Profil
Prosím o ukázku problematického XML souboru.
Chamurappi
Profil
Reaguji na Gubo:
pouzivam XHTML - chcete povedat, ze v XHTML o syntaxi nerozhoduje DTD?
Ano. Prohlížeče vnímají tvůj kód jako HTML s přebytečnými lomítky, která ignorují. Kdyby jej vnímaly jako X[HT]ML, fungovala by sekce <![CDATA[ … ]]> přesně tak, jak potřebuješ (nezobrazovala by se návštěvníkovi).

básnická otázka? Každý web by mal byť validný ...
Proč? V tvém případě louskají kód všechna cílová zařízení (vyjma pochybného validátoru na w3.org) jako nevalidní HTML a jsi s tím spokojen.

uz by som radsej pristupil k definovaniu vlastneho DTD, co tiez nie je 2xvyhra, nakolko zastavam nazor, ze web ma byt v XHTML, nie XML
XHTML je množina XML elementů v určitém jmenném prostoru, nepotřebuje DTD.

A to vznika problem, ze niektore realne boli entitami lt a gt, niektore boli tagy.
Samozřejmě musíš zapsat entitou i ampersandy, pokud nechceš, aby se braly jako uvození entity.
bohyn
Profil
Gubo
Zkusil si co ti tu radime? - ne. Pokud bys to zkusil tak vis ze htmlspecialchars() udela presne to co potrebujes a prohlizec ti to pri odesilani prevede zpet.
Gubo
Profil *
Str4wberry - Akekolvek XML - jeho struktura je z velkej casti neznama vopred.

Tak strelim priklad problematickeho XML

<?xml version="1.0" encoding="UTF-8"?>
<clanok>
<kategoria>Mix</kategoria>
<obrazok>Modry</obrazok>
<datum>
<rok>2009</rok>
<mesiac>2</mesiac>
<den>13</den>
</datum>
<autor>Autor</autor>
<nadpis>Nadpis</nadpis>
<uvodny_text>Uvod
</uvodny_text>
<obsah>Mame cisla <strong>8 a 10</strong> 8 &lt; 10 a 10 &lt; 8 a toto je &lt;TAG&gt; <tag>MEGATAG</tag> a &lt;/TAG&gt; -
to bol koniec MEGA<b>TAGU</b>.
<obsahova_vsuvka>VSUVKAAAAAAAA</obsahova_vsuvka>
sdsddsdsfdsfsdfdfsdf
<obsahova_vsuvka>VSUVK<vnorena_vsuvka>AAAAA</vnorena_vsuvka>AAA</obsahova_vsuvka>
<obsahova_vsuvka>VSUVK<vnorena_vsuvka>AA&gt;gt&gt;AA&lt;A&gt;</vnorena_vsuvka>AAA</obsahova_vsuvka>
</obsah>
</struktura>
<struktura>
</clanok>


Chamurappi: Vsetky tieto argumenty beriem, ale ignoruju W3.ORG validator - berte to ako fanatizmus, ja to ale chcem mat validne :-D
Chamurappi
Profil
Reaguji na Gubo:
Jak jsem již zmínil, musíš nahradit i ampersandy. Z „&“ uděláš „&amp;“, z „<“ uděláš „&lt;“, z „&lt;TAG&gt;“ vznikne „&amp;lt;TAG&amp;gt;“, což prohlížeč v <textarea> ukáže tak, jak chceš. O zmíněné úpravy se umí postarat PHP funkce, kterou ti doporučují ostatní.

berte to ako fanatizmus, ja to ale chcem mat validne :-D
Fajn, tak projdi českým validátorem.
Gubo
Profil *
Aha :) Dakujem, idem to vyskusat, nie som si sice celkom isty, ale idem to vyskusat :)
_es
Profil
Gubo
Akekolvek XML - jeho struktura je z velkej casti neznama vopred
Čo keď bude v tom "akomkoľvek XML" <textarea></textarea>?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: