/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
XMLOutputter og XSLTransformer
Fra : Peter F. Poulsen


Dato : 04-03-04 23:28

Hej,

Jeg har et Document som jeg udskriver med XMLOutputter:
Document d = new Document(root);
new XMLOutputter().output(d, response.getOutputStream());

Hvordan kan jeg tilknytte et stylesheet til det jeg udskriver?

Mvh Peter F. Poulsen

 
 
hal@no_spam_statsbib~ (05-03-2004)
Kommentar
Fra : hal@no_spam_statsbib~


Dato : 05-03-04 15:47

Peter F. Poulsen wrote:
> Hej,
>
> Jeg har et Document som jeg udskriver med XMLOutputter:
> Document d = new Document(root);
> new XMLOutputter().output(d, response.getOutputStream());
>
> Hvordan kan jeg tilknytte et stylesheet til det jeg udskriver?
>
> Mvh Peter F. Poulsen

Hvad mener du med at tilknytte et stylesheet? -> mener du at det er
kommer i oputputStreamen skal være dit dokument; hvopå et stylesheet har
virket?

Hvis det er tilfældet skal du bruge en Transformer og ikke XMLOutputter.
(her kan xerces/xalan anbefales)
Uden at være sikker vil jeg tro at du altid kan erstatte XMLoutputteren
med transformeren ( givers der ikke noget stylesheet er outputtet en
identittets afbildning )

I princip :

// Du skal have en source (Source kan være enten DOMSource SAXSource
eller en StreamSource) Har du et Document ( altså et eller andet der
implementerer DOM Documet interfacet og det gætter jeg på så :

Source so = new DOMSource(d.getDocumentElement());

//lav en TransformerFactory.

TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = null;

// opret resultatat -> her direkte til outputStreamen på response

StreamResult re = new
javax.xml.transform.stream.StreamResult(response.getOutputStream);

// initialicer transformeren, med det stylesheet der skal transformeres
med. ( her fra en URL)

   transformUrl = "http://mit.stylesheet.dk/style.xsl";
transformer = tFactory.newTransformer(new
javax.xml.transform.stream.StreamSource(new
URL(transformUrl).openStream()));

// formater det output du gerne vil have

transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,
("UTF-8"));

transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");


// go:
transformer.transform(so, re);


/Hans


Peter F. Poulsen (05-03-2004)
Kommentar
Fra : Peter F. Poulsen


Dato : 05-03-04 22:38

Hej,

Ja det var det jeg mente. Jeg vil lige prøve at teste din fremgangsmåde.
Forløbig tak for det.

hal@no_spam_statsbiblioteket.dk wrote:
> Peter F. Poulsen wrote:
>
>> Hej,
>>
>> Jeg har et Document som jeg udskriver med XMLOutputter:
>> Document d = new Document(root);
>> new XMLOutputter().output(d, response.getOutputStream());
>>
>> Hvordan kan jeg tilknytte et stylesheet til det jeg udskriver?
>>
>> Mvh Peter F. Poulsen
>
>
> Hvad mener du med at tilknytte et stylesheet? -> mener du at det er
> kommer i oputputStreamen skal være dit dokument; hvopå et stylesheet har
> virket?
>
> Hvis det er tilfældet skal du bruge en Transformer og ikke XMLOutputter.
> (her kan xerces/xalan anbefales)
> Uden at være sikker vil jeg tro at du altid kan erstatte XMLoutputteren
> med transformeren ( givers der ikke noget stylesheet er outputtet en
> identittets afbildning )
>
> I princip :
>
> // Du skal have en source (Source kan være enten DOMSource SAXSource
> eller en StreamSource) Har du et Document ( altså et eller andet der
> implementerer DOM Documet interfacet og det gætter jeg på så :
>
> Source so = new DOMSource(d.getDocumentElement());
>
> //lav en TransformerFactory.
>
> TransformerFactory tFactory = TransformerFactory.newInstance();
> Transformer transformer = null;
>
> // opret resultatat -> her direkte til outputStreamen på response
>
> StreamResult re = new
> javax.xml.transform.stream.StreamResult(response.getOutputStream);
>
> // initialicer transformeren, med det stylesheet der skal transformeres
> med. ( her fra en URL)
>
> transformUrl = "http://mit.stylesheet.dk/style.xsl";
> transformer = tFactory.newTransformer(new
> javax.xml.transform.stream.StreamSource(new
> URL(transformUrl).openStream()));
>
> // formater det output du gerne vil have
>
> transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,
> ("UTF-8"));
>
> transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,
> "yes");
>
>
> // go:
> transformer.transform(so, re);
>
>
> /Hans
>

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408917
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste