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
>