17. marts 2006 - 02:12Der er
4 kommentarer og 1 løsning
XMLOutputter vil ikke outputte HTML
Hejsa
Jeg læser et ATOM feed fra nettet og parser dette. Alt går fint indtil jeg skal udskrive indholdet af et givent element (<content>). Content elementet indeholder en vilkårlig HTML kode. Jeg kører det hele under Tomcat og jeg bruger JDOM til XML håndteringen.
Følgende kode:
... XMLOutputter xo = new XMLOutputter(); xo.outputElementContent(entry.getChild("content", ns), swContent); ...
Outputter også fint indholdet til min StringWriter sw. Problemet er dog at alle HTML tags oversættes til HTML entities, dvs. < bliver til < osv. Det giver naturligvis et problem da al HTML koden udskrives direkte i browseren i stedet for at blive parset.
Jeg har forsøgt at lege med at sende en Format klasse med i XMLOutputterens constructor, men den ser ikke ud til at reagere overhovedet.
Har du i så fald et eksempel på hvorledes dette gøres? Den relevante XML ser ud som her:
.... <entry> ... <content>--- Vilkårlig HTML indhold ---</content> ... </entry>
Jeg har et JDOM Element som repræsenterer entry elementet. Jeg skal have indholdet af content elementet ud præcist som det står, dvs. alle HTML tags kommer ud som HTML tags, og eventuelle HTML entities skal også bibeholdes.
Jeg har også forsøgt mig med en rekursiv metode som løb et elements .getContent() igennem og udskriv disse værdier og kørte metoden selv på eventuelle child elementer. Her kom HTML'en sådan set fint nok ud, men nu blev mine HTML entities lavet om til desiderede HTML tags, hvilket ikke skulle gøres.
Og nu er det så jeg kan undre mig over hvordan jeg har kunnet kæmpe med så simpelt et problem over to dage... Hvordan jeg har kunnet prøver diverse komplicerede løsninger og alligevel åbenbart overse noget så simpelt.
Tak er småt i denne sammenhæng, men tak skal du ha... Smid et svar, jeg insisterer.
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.