Avatar billede janegil Nybegynder
28. februar 2001 - 14:54 Der er 8 kommentarer og
1 løsning

DOM i JSP ?

Med org.w3c.dom.Document,
http://developer.java.sun.com/developer/earlyAccess/xml/docs/api/org/w3c/dom/Document.html
kan jeg få meg et HTML-dokument som Java-objekt.

Men hvordan får jeg skrevet et Document ut i en JSP-side? Ser ut til at den normale metoden er out.writeln(). Så jeg skal ha en streng. Men Document.getNodeValue skal returnere null, og Document.innerHtml finnes ikke. (innerHtml er ikke W3C-DOM, men fantes i IE og Netscapes private javascript DOM.)
Avatar billede desp Nybegynder
28. februar 2001 - 15:13 #1
du skal trykke f10 efter
Avatar billede janegil Nybegynder
28. februar 2001 - 15:22 #2
F10? Hvor? I JRun Studio?
Avatar billede monz Nybegynder
03. marts 2001 - 18:43 #3
Kan du ikke bruge .toString() metoden på Document objektet ?

<%
  out.println( doc.toString() );
%>

Avatar billede janegil Nybegynder
05. marts 2001 - 11:18 #4
Lyder som et rimelig, men ikke skuddsikkert forslag. Vi risikerer nok å få en beskrivelse av dokumentet, heller enn innholdet.

Jer har prøvd noe lignende på http://heima.olivant.fo/~styrheim/test/csi/ramme.html , nederste linja i den sida er er forsøk på å bruke toString() på en HTTPConnection, det returnerer navnet på klassen, ikke strengen som HTTP har hentet...

Dessuten tror jeg at jeg kommer til å bruke JRun til å generere XML-fragmeter fra databaser, og style dem til HTML med jrun:xslt. Så jeg kommer nok ikke til å så mye bruk for direkte DOM-manipulasjoner. Faktisk tror jeg at jeg kan slippe unna uten å skrive en eneste linje Java.

I jrun:Query2Xml kan jeg visst velge om den skal generere DOM-objekt eller tekst. jrun:xslt har ikke noe slikt valg, det betyr nok at output alltid er tekst.
Avatar billede monz Nybegynder
05. marts 2001 - 12:51 #5
toString() er nedarvet fra Object, og implementeret i henhold til hvad der giver mening for en konkret klasse. Jeg vil mene at toString på et DOM Document burde returnerer XML teksten.

Prøv at kigge på http://www.jdom.org/

Det er et API der wrapper eks. DOM og SAX, og gør det utroligt let og behageligt at arbejde med XML i Java.

/Anders
Avatar billede janegil Nybegynder
05. marts 2001 - 14:43 #6
Jeg har nok oversett et eller annet helt fundamentalt om hvordan et DOM XML-dokument går hen og blir sendt som bytes fra en HTTP-server.

http://developer.java.sun.com/developer/earlyAccess/xml/docs/api/org/w3c/dom/Document.html redefinerer slett ikke toString(). JDOM gjør, men sier samtidig at den er ment for debugging. Altså er jeg på villspor. Jeg blir nødt til å sette meg inn i hvordan en servlet fungerer.
Avatar billede aksel_schmidt Nybegynder
03. april 2001 - 14:11 #7
<%
String domString = new String();
    // Format the document for string
        // representation 
        // Serialize DOM
    OutputFormat format = new OutputFormat(domObject, \"ISO-8859-1\", true);
       
        //Writer will be a String
    StringWriter stringOut = new StringWriter();
    XMLSerializer serial = new XMLSerializer(stringOut, format);
    try { 
            // As a DOM Serializer
        serial.asDOMSerializer();
        serial.serialize( domObject.getDocumentElement() );
    } 
        catch (Exception ex) {
            aLog.error(ex.toString());
    }

    return stringOut.toString();
    }
Avatar billede aksel_schmidt Nybegynder
03. april 2001 - 14:17 #8
sorry - trykkede list for hurtigt:
Følgende burde kunne skrive dit document ud fra
din jsp-fil. \'domObject\' er dit DOM-object!
\'ISO-8859-1\' er det karaktersæt, du vil udskrive med. Desværre kommer også xml-descriptor tagget med ud (alt kommer med ud her), selvom du har lavet et html-xml-document.
Måske burde du se mere på xslt?
<%
  // Format the document for string
  // representation 
  // Serialize DOM
  OutputFormat format = new OutputFormat(domObject, \"ISO-8859-1\", true);
       
  //Writer will be a String
  StringWriter stringOut = new StringWriter();
  XMLSerializer serial = new XMLSerializer(stringOut, format);
  try { 
    // As a DOM Serializer
    serial.asDOMSerializer();
    serial.serialize(domObject.getDocumentElement() );
    } 
    catch (Exception ex) {
      // log?
    }
%>
<%=stringOut.toString%>
Avatar billede janegil Nybegynder
03. april 2001 - 14:29 #9
To sjeler – én tanke.
Ja, jeg ser XSL/T som fundamentet for XML-håndtering. JSP, servlet, DOM og parsing er saker jeg bare vil forstå, for å forsikre meg om at XSL/T er rett satset.

Har ikke tid til å teste koden nå, men det ser fornuftig ut. (\"Hvis ikke det er sant, er det godt løyet\")
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