Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



XSLT pro docbook ve webovém prohlížeči

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: XSLT pro docbook ve webovem prohlizeci

Autor: jirka.kosek

11:25:30 13.09.2011

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 13.9.2011 9:09, Sentinel wrote:

> podělím se s Vámi o řešený problém. Mám docbook article, uložený v
> xml souboru. Převézt ho do html např saxonem není problém. Co by mě
> však zajímalo, jestli je možné nějakým způsobem využít stávající
> transformaci pro převod do html pouze v hlavičce dokumentu
> > href="standardni_docbook_html.xsl"?>

Možné to samozřejmě je, ale vzhledem k velikosti XSLT stylů pro DocBook
to není moc vhodné, protože jejich stažení a aplikování transformace na
klientovi je většinou dost pomalé. Pokud to někdo takto potřebuje dělat,
obvykle se napíše speciální zjednodušená transformace, která podporuje
jen ty elementy DocBooku, které se opravdu v dokumentu používají.

Jirka Kosek

- --
- ------------------------------------------------------------------
Jirka Kosek e-mail: jirka@kosek.cz http://www.kosek.cz
- ------------------------------------------------------------------
Profesionální školení a poradenství v oblasti technologií XML.
Podrobný přehled školení http://xmlguru.cz/skoleni/
- ------------------------------------------------------------------
http://docbook.cz Stránky o dokumentačním formátu DocBook
http://xmlguru.cz Blog mostly about XML for English readers
- ------------------------------------------------------------------
Příspěvek zaslán emailem

Citovat příspěvek

 

Re: XSLT pro docbook ve webovém prohlížeči

Autor: judovana

10:36:31 13.09.2011

asi ti udelam radost, neb je to primo podporovane. takze s einspiruj:

html:
[code]




XYZ
















[/code]
javascript:
[code]
if(typeof String.prototype.trim !== 'function') { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); } }


function getQueryVariable(variable) {
var query = unescape(window.location.search.substring(1));
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return unescape(pair[1]);
}
}
// alert('Query Variable ' + variable + ' not found');
return "";
}

function getDay(){
var d=new Date();
var weekday=new Array(7);
weekday[0]="su";
weekday[1]="mo";
weekday[2]="tu";
weekday[3]="we";
weekday[4]="th";
weekday[5]="fr";
weekday[6]="sa";
return weekday[d.getDay()]
}

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}


function xslt(sheet)
{
var id=(getQueryVariable("id"));
var city=(getQueryVariable("city"));
var key=(getQueryVariable("key" ));
var day=getDay();
var cityPart=(getQueryVariable("cityPart" ));

var sheetName="data/sheets/"+sheet+".xsl";
var xmlName="data/data.xml";
// code for IE
if (window.ActiveXObject)
{
var XML = new ActiveXObject("MSXML2.FreeThreadedDomDocument");
XML.async = "false";
XML.load(xmlName);

var XSL = new ActiveXObject("MSXML2.FreeThreadedDomDocument");
XSL.async = "false";
XSL.load(sheetName);
var XSLTCompiled = new ActiveXObject("MSXML2.XSLTemplate");
//Add the stylesheet information
XSLTCompiled.stylesheet = XSL.documentElement;
//Create the XSLT processor
var msShit = XSLTCompiled.createProcessor();

msShit.input = XML
//Set the parameters
if(id.trim()!=""){
msShit.addParameter("id", id);
}
if(key.trim()!=""){
msShit.addParameter("key", key);
}
if(city.trim()!=""){
msShit.addParameter("city", city);
}
if(day.trim()!=""){
msShit.addParameter("day", day);
}
if(cityPart.trim()!=""){
msShit.addParameter("cityPart", cityPart);
}
//Perform the transform
msShit.transform();
document.getElementById("wholePage").innerHTML=msShit.output;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsl=loadXMLDoc(sheetName);
xml=loadXMLDoc("data/data.xml");
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);

if(id.trim()!=""){
xsltProcessor.setParameter(null,"id",id);
}
if(city.trim()!=""){
xsltProcessor.setParameter(null,"city",city);
}
if(key.trim()!=""){
xsltProcessor.setParameter(null,"key",key);
}
if(day.trim()!=""){
xsltProcessor.setParameter(null,"day",day);
}
if(cityPart.trim()!=""){
xsltProcessor.setParameter(null,"cityPart", cityPart);
}

resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("wholePage").appendChild(resultDocument);
}
}


V praxi tenhle xslt system bezi na nesmyslnoexperimentlanim webu http://sluzbykolemvas.cz/ . Kdyztak si ho proklikeja prohlidni si html a js zdrojaky. myslim ze to vlastne muzes cely copypastnout.

btw primo od zdroje: http://www.w3schools.com/xsl/xsl_client.asp
[/code]

[/code] javascript: [code] if(typeof String.prototype.trim !== 'function') { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); } } function getQueryVariable(variable) { var query = unescape(window.location.search.substring(1)); var vars = query.split("&"); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return unescape(pair[1]); } } // alert('Query Variable ' + variable + ' not found'); return ""; } function getDay(){ var d=new Date(); var weekday=new Array(7); weekday[0]="su"; weekday[1]="mo"; weekday[2]="tu"; weekday[3]="we"; weekday[4]="th"; weekday[5]="fr"; weekday[6]="sa"; return weekday[d.getDay()] } function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { xhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",dname,false); xhttp.send(""); return xhttp.responseXML; } function xslt(sheet) { var id=(getQueryVariable("id")); var city=(getQueryVariable("city")); var key=(getQueryVariable("key" )); var day=getDay(); var cityPart=(getQueryVariable("cityPart" )); var sheetName="data/sheets/"+sheet+".xsl"; var xmlName="data/data.xml"; // code for IE if (window.ActiveXObject) { var XML = new ActiveXObject("MSXML2.FreeThreadedDomDocument"); XML.async = "false"; XML.load(xmlName); var XSL = new ActiveXObject("MSXML2.FreeThreadedDomDocument"); XSL.async = "false"; XSL.load(sheetName); var XSLTCompiled = new ActiveXObject("MSXML2.XSLTemplate"); //Add the stylesheet information XSLTCompiled.stylesheet = XSL.documentElement; //Create the XSLT processor var msShit = XSLTCompiled.createProcessor(); msShit.input = XML //Set the parameters if(id.trim()!=""){ msShit.addParameter("id", id); } if(key.trim()!=""){ msShit.addParameter("key", key); } if(city.trim()!=""){ msShit.addParameter("city", city); } if(day.trim()!=""){ msShit.addParameter("day", day); } if(cityPart.trim()!=""){ msShit.addParameter("cityPart", cityPart); } //Perform the transform msShit.transform(); document.getElementById("wholePage").innerHTML=msShit.output; } // code for Mozilla, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { xsl=loadXMLDoc(sheetName); xml=loadXMLDoc("data/data.xml"); xsltProcessor=new XSLTProcessor(); xsltProcessor.importStylesheet(xsl); if(id.trim()!=""){ xsltProcessor.setParameter(null,"id",id); } if(city.trim()!=""){ xsltProcessor.setParameter(null,"city",city); } if(key.trim()!=""){ xsltProcessor.setParameter(null,"key",key); } if(day.trim()!=""){ xsltProcessor.setParameter(null,"day",day); } if(cityPart.trim()!=""){ xsltProcessor.setParameter(null,"cityPart", cityPart); } resultDocument = xsltProcessor.transformToFragment(xml,document); document.getElementById("wholePage").appendChild(resultDocument); } } V praxi tenhle xslt system bezi na nesmyslnoexperimentlanim webu http://sluzbykolemvas.cz/ . Kdyztak si ho proklikeja prohlidni si html a js zdrojaky. myslim ze to vlastne muzes cely copypastnout. btw primo od zdroje: http://www.w3schools.com/xsl/xsl_client.asp [/code]

Citovat příspěvek

 

XSLT pro docbook ve webovém prohlížeči

Autor: Sentinel

9:09:16 13.09.2011

Dobrý den,
podělím se s Vámi o řešený problém. Mám docbook article, uložený v xml souboru.
Převézt ho do html např saxonem není problém. Co by mě však zajímalo, jestli je možné nějakým způsobem využít stávající transformaci pro převod do html pouze v hlavičce dokumentu


tak aby webový prohlížeč automaticky zavolal transformaci na daném dokumentu a zobrazil ho již korektně jako html se styly.

Projistotu uvedu i důvod proč to řeším: mám repozitář (verzovací) v kterém je mimo jiné i zmíněný dokument, a moc by se mi hodilo když bych bez překladu (při každé změně - a tudíž bez verzování vygenerovaného obsahu) tento obsah zobrazovat ve webovém prohlížeči.

Díky za názory či nápady.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: