Avatar billede rudidanmark Nybegynder
16. april 2004 - 11:29 Der er 21 kommentarer og
1 løsning

XMLReader - henter XML i String format

Hejsa!
Jeg skal bruge XML parse og har valgt at bruge SAX efter eksemplet:
http://www.eksperten.dk/spm/323710  v. Arne_v

Mit problem er imidlertidigt at jeg ikke henter XML data fra en fil, men i stedet har dette som en String fra en Database. Jeg skal altså bruge en måde hvor på man kan omgå
XMLReader.parse(File XMLFile), men har ikke kunnet finde ud af hvordan. Jeg må ikke lave en fil på computeren.

Kode udsnit:
ArrayList data = new ArrayList();
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(new MySaxParser(data));
xr.parse(XML_FILE); //<--- PROBLEM, parse() skal modtage en String XML-text, men hvordan?

Er der iøvrigt et problem hvis mit XML ikke indeholder beskrivelse i toppen? fx. <?xml version='1.0' standalone='yes'?>
Avatar billede simonvalter Praktikant
16. april 2004 - 11:36 #1
xr.parse kan vist også bare tage en string

så kan du ikke bare tage og give den den, eller samle det i en stringbuffer
Avatar billede simonvalter Praktikant
16. april 2004 - 11:44 #2
tog vist lidt fejl der ;)
Avatar billede arne_v Ekspert
16. april 2004 - 11:44 #3
Prøv med:

xr.parse(new InputSource(new ByteArrayInputStream(s.getBytes())));
Avatar billede arne_v Ekspert
16. april 2004 - 11:45 #4
hvor s er en String hentet fra databasen
Avatar billede rudidanmark Nybegynder
16. april 2004 - 11:47 #5
Ja, parse kan godt tage en String, men den String vil beskrive et systemID og kan derfor ikke indeholde en XML tekst.
Kan du uddybe lidt hvad du tænkte på med den StringBuffer?
Avatar billede rudidanmark Nybegynder
16. april 2004 - 11:49 #6
Damm.. I er sgu hurtige. :)
Første svar var til loadet. Jeg prøvet lige din løsning Arne_v
Avatar billede arne_v Ekspert
16. april 2004 - 11:50 #7
Og der skulle ikke være noget problem med at <?xml mangler
Avatar billede rudidanmark Nybegynder
16. april 2004 - 11:51 #8
ok.
Avatar billede simonvalter Praktikant
16. april 2004 - 11:51 #9
arnes virker fint ;)
Avatar billede simonvalter Praktikant
16. april 2004 - 11:52 #10
men det er nok stadig en god ide at smide et i en stringbuffer ;)
Avatar billede simonvalter Praktikant
16. april 2004 - 11:53 #11
hvis du henter en masse ud altså
Avatar billede rudidanmark Nybegynder
16. april 2004 - 11:56 #12
loadet: ok. ja, det har du vist ret i :)

Det ser ud til at virke fint, så det er top nice..  Tak for den hurtige hjælp
Avatar billede rudidanmark Nybegynder
16. april 2004 - 11:58 #13
point arne?
Avatar billede simonvalter Praktikant
16. april 2004 - 11:58 #14
hvilken database bruger du til at retunere xml.. oracle ?
Avatar billede arne_v Ekspert
16. april 2004 - 11:59 #15
jo tak
Avatar billede rudidanmark Nybegynder
16. april 2004 - 12:01 #16
Det ved jeg faktisk ikke helt, jeg henter bare data via netbeans fra et produkt som jeg ikke kender så godt.
Men det er vist ikke Oracle, for vi bruger en HSQLDB driver.
Avatar billede simonvalter Praktikant
16. april 2004 - 12:02 #17
ok
Avatar billede rudidanmark Nybegynder
16. april 2004 - 12:03 #18
:)
Avatar billede rudidanmark Nybegynder
16. april 2004 - 12:05 #19
Arhh... hvorfor h.. kan jeg nu ikke acceptere dit svar, når jeg trykker på knappen sker der minus.
Avatar billede simonvalter Praktikant
16. april 2004 - 12:12 #20
har du markeret ham først?
Avatar billede rudidanmark Nybegynder
16. april 2004 - 12:16 #21
nope, der var den ;)
Avatar billede arne_v Ekspert
16. april 2004 - 12:36 #22
Med en HSQLDB driver så er det jo nok en HSQLDB database.

Den har næppe nogen indbygget XML support ligesom SQLServer (og Oracle
formoder jeg) har det.
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