Ako zapnúť renderovanie HTML značiek pri XSL transformácií XML

Jeden deň som bojoval s XSL transformáciou XML v Internet Exploreri. Akonáhle som vnútri XML prvkov použil HTML značky, tak vo výslednej transformácii pomocou XSL som mal iba čistý text. Nakoniec som zistil, že pekelný MSXML značky ignoruje.


Riešenie by malo byť vo vypnutí pekla ako inak kábečkom. Príklad:

<xsl:value-of select='F2' disable-output-escaping="yes"/>

internet-explorer

Nádherné riešenie, ktoré v praxi nefunguje a to správne totiž je v položkách XML kód, ktorý má byť renderovaný aj s HTML značkami uzavrieť nejako takto:

<text><b><![CDATA[</b>Nejaky <strong>tucny</strong> text<b>]]></b></text>

Súvislosti: mal som krásne zadanie, vyrobiť firemný newsletter. Rozhodol som ísť cestou od čistých a štrukturovaných dát (čo iné, XML). Prepláchnuť to nejakým procesorom, ktorý to obalí grafikou (ku XML sa pridáva XSL). Chcel som dosiahnuť, aby redakčnou prácou s obsahom sa nedal vzhľad newsletteru “porozbíjať”.

Bojoval som s InfoPath ako výhodným editorom formulárov s výstupom do XML. Zlyhal som. InfoPath si tam nasype do hlavičky čosi, čo spôsobí, že XML súbor sa otvorí zasa a len v InfoPath.

Nemal som silu to dobojovať aj keď by som InfoPathom vytvoril nádherný formulár na vkladanie dát. Kto ma viete nakopnúť, budem radostný. Chcem z InfoPath formulára vypľuť XML súbor :-) (poriadne čítajte celý text)

Nakoniec budem vkladanie dát realizovať Notepadom resp. vyskladám nejaký klasický FORM v HTML :-) so submitom na servri. Ktohovie.
Zapáčilo sa mi, že finalizáciu mi urobí vlastne akýkoľvek Windows bez úpravy (ak máte vo firme paranoikov, tak si neškrtnete – nebudem komentovať). Všetko ten pekelný MSXML. Nakoniec som naškrabal celkom inteligentný XSL.

Potom som si ešte vyrobil malý VBS pre Windows Shell, ktorým len automatizujem tri kroky:

  • zadanie poradového čísla vydania (to ešte skúsim ďalej automatizovať),
  • uloženie XML súboru do Sharepoint zložky ako archívu vydaní,
  • transformácia XML pomocou XSL a jej výsledok odoslanie mailom (cez MS Outlook).

Prinajhoršom sa dá na práve napísaný XML kliknúť, otvorí sa IE a klasika Ctrl-A, Ctrl-C, otvorím mail a Ctrl-V.
Konkrétne skripty a príklady si ľahko vyskladáte, od roku 2002 som sporadicky vydával hotové kódy. Jediné, čo som ešte nezverejňoval boli tipy na XSL.

Teraz nech mi nejaký usmrkanec hovorí voľačo o Apple ovciach najmä tým, ktorí tomuto textu nerozumeli by mali držať jazyk za zubami :)

No, musím premýšľať ako urobiť konečnému používateľovi príjemnejší formulár, ktorý mi vyrobí žiadaný XML… (pomôžete?)

Written by rony