Avatar billede zapzie Nybegynder
04. juli 2008 - 17:39 Der er 4 kommentarer

Undgå at XSLT processor lukker tomme tags

Hej,

Sidder og leger med en servlet, som bruger XSLT til at lave noget HTML ud fra et XML dokument.

Mit problem er, at jeg nogle steder har følgende i XSL filen:
<div class="clear"></div>

Når det så har været igennem XSLT processoren, så er det bliver til:
<div class="clear"/>

Det er browseren ikke så glad for, så er der nogen der ved hvordan jeg kan undgå dette, sådan at den ikke formatere outputtet anerledes end det står i XSL filen?

Her er koden jeg bruger til at transformere XML'en med:

public String transform(final String xml, final String xsl) throws TransformerException, TransformerConfigurationException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(new ByteArrayInputStream(xsl.getBytes())));         
transformer.transform(new StreamSource(new ByteArrayInputStream(xml.getBytes())), new StreamResult(os));
return os.toString();
}

Bruger Xalan-Java: http://xml.apache.org/xalan-j/ som XSLT processor.
Avatar billede eydun Nybegynder
04. juli 2008 - 18:41 #1
<xsl:output method="html" indent="yes" version="4.0"/>

http://www.ibm.com/developerworks/xml/library/x-tiphtml.html
Avatar billede zapzie Nybegynder
04. juli 2008 - 18:54 #2
Skrev lidt forkert.
Jeg vil gerne have det som xhtml.

Vil faktisk gerne have at den ikke piller ved hvordan opbygningen af resultatet er, sådan at den bare kører xsl-tagsene igennem og så tager det whitespace med, som der nu skulle være i xsl-filen.
Avatar billede arne_v Ekspert
05. juli 2008 - 04:05 #3
Hvis det er XHTML så bør <div/> betragtes som det samme som <div></div>.

Jeg mener at du må vælge imellem XML <div/><br/> og HTML <div></div><br> med XSLT.

Som workaround kan du sende XML'en gennem din egen formatter som udskriver det
præcis som du vil have det.
Avatar billede arne_v Ekspert
28. oktober 2008 - 23:43 #4
zapzie ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester