Oprettet ons. d. 28. februar 2001 kl. 14:54:02

janegil
janegil (20.557 point. Point ude: 4.603)

DOM i JSP ?

Med org.w3c.dom.Document,
http://developer.java.sun.com/ (...)
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.)

Skrevet ons. d. 28. februar 2001 kl. 15:13:21| #1

desp
desp (19.740 point)
du skal trykke f10 efter

Skrevet ons. d. 28. februar 2001 kl. 15:22:41| #2

janegil
janegil (20.557 point)
F10? Hvor? I JRun Studio?

Skrevet lør. d. 03. marts 2001 kl. 18:43:53| #3

monz
monz (22.368 point)
Kan du ikke bruge .toString() metoden på Document objektet ?

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


Skrevet man. d. 05. marts 2001 kl. 11:18:45| #4

janegil
janegil (20.557 point)
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/ (...) , 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.

Skrevet man. d. 05. marts 2001 kl. 12:51:16| #5

monz
monz (22.368 point)
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

Skrevet man. d. 05. marts 2001 kl. 14:43:05| #6

janegil
janegil (20.557 point)
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/ (...) 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.

Skrevet tir. d. 03. april 2001 kl. 14:11:56| #7

aksel_schmidt
aksel_schmidt (20.660 point)
<%
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();
    }

Skrevet tir. d. 03. april 2001 kl. 14:17:16| #8

aksel_schmidt
aksel_schmidt (20.660 point)
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%>

Skrevet tir. d. 03. april 2001 kl. 14:29:12| #9

janegil
janegil (20.557 point)
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\")

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

setContent i Tinymce

Oprettet den 22. maj 2012 kl. 15.56
m-lab giver 30 point for svar | Giv et svar »

How to avoid double requests from a form?

Oprettet den 26. april 2012 kl. 09.59
fredand giver 30 point for svar | Giv et svar »

list af andre sider

Oprettet den 3. marts 2012 kl. 19.13
juliemusen giver 200 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger