Avatar billede margitbork Nybegynder
31. august 2004 - 08:37 Der er 11 kommentarer og
1 løsning

hvordan parser jeg en String i xml format

Jeg skal kalde en metode som returnerer en string i XML format. Hvordan parser jeg den til mine objekter ?
Avatar billede Slettet bruger
31. august 2004 - 09:28 #1
Hvis du vil forsøge at omforme Objekter -> XML, eller XML -> Objekter hvor du ikke har nogen kontrol over selve XML-strukturen kunne du med fordel se på XMLEncoder og XMLDecoder-klasserne. De findes dog kun i Java 1.4.0+.

Ellers findes der mange andre (gratis) API'er til at tilgå XML-strukturer (bruger selv JDOM: http://www.jdom.org/ ), så skal du blot implementere din egen algoritme til at oversætte XML-strukturer til Java-objekter.
Avatar billede margitbork Nybegynder
31. august 2004 - 09:31 #2
Men hvordan gør man når man får XML'en som en tekstString og ikke som en fil man kan tilgå via IO
Avatar billede Slettet bruger
31. august 2004 - 09:33 #3
finder lige noget kode.... vent venligst *starter pause-musik* ;-)
Avatar billede margitbork Nybegynder
31. august 2004 - 09:38 #4
:o}  go musik
Avatar billede Slettet bruger
31. august 2004 - 09:39 #5
Du kunne evt. bruge en ByteArrayInputStream / OutputStream til at gemme fra XMLEncoder / Decoder, noget i stil med:

    ByteArrayOutputStream byt = new ByteArrayOutputStream(1000);
        XMLEncoder e = new XMLEncoder(byt);
        e.writeObject(trans);
        e.close();
        byte[] bytes = byt.toByteArray();
Avatar billede margitbork Nybegynder
31. august 2004 - 09:43 #6
Det forstod jeg ikke lige, hvor er mit String objekt lige henne her - er det den du kalder trans ??
Jeg er faldet ned i noget der hedder XMLBeans, Kender du noget til det ?
Avatar billede Slettet bruger
31. august 2004 - 09:53 #7
sorry, der er en outputstream jeg har givet et eksempel på:


Her er et på en inputstream:

String dinStreng = ""; // xml
byte[] arrayAtParse = dinStreng.getBytes();
ByteArrayInputStream byt = new ByteArrayInputStream(arrayAtParse);
XMLDecoder e = new XMLDecoder(byt);
DitObjekt obj = (DitObjekt )e.readObject();
e.close();
Avatar billede Slettet bruger
31. august 2004 - 10:00 #8
nope, kender ikke til XMLBeans, desværre
Avatar billede margitbork Nybegynder
31. august 2004 - 10:02 #9
Jeg ser lidt på det, måske kan jeg nøjes med den enkle approach med en byteArrayInputStream..Takker
Avatar billede Slettet bruger
31. august 2004 - 10:14 #10
Så ligger jeg lige et svar, såfremt du får det til at virke :-)
Avatar billede margitbork Nybegynder
31. august 2004 - 10:51 #11
For at komme igang med at teste, skal jeg lige have lavet en String i XML format. Jeg har en XML fil og en xsd fil, - hvordan laver jeg det om til en String
Avatar billede Slettet bruger
31. august 2004 - 12:13 #12
øhmmm, du skal lige vide at du ikke kan parse en hvilken som helst XML-fil igennem XMLDecoder-klassen, kun XML-filer lavet af XMLEncoder-klassen. Hvis du vil ha' parset en XML-fil (struktureret efter anden form en den af XMLEncoder-klassen), skal du selv implementere noget til at omstrukturere strengen til Objekter.

Dette kan ikke laves på 10-linier, du skal derimod til at læse en del tutorials om emnet, jeg kan VARMT anbefale arne_v's artikler om emnet:

XML parsning i Java: http://www.eksperten.dk/artikler/100
Mere XML i Java: http://www.eksperten.dk/artikler/245

Det er altid et godt sted at starte, efter du har fået adgang til selve XML'en, skal du så ha' implementeret programlogikken for at få ændret XML-data til Objekter.
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