Avatar billede kasseper Nybegynder
22. juli 2003 - 15:40 Der er 5 kommentarer og
1 løsning

xerces, Node, getNodeValue

Hey

Jeg sidder og roder med Xerces DOM parser.
Lad os nu antage at jeg har følgende xml <snip> :

<fidus class="java.lang.Integer">1</fidus>
<fidus class="java.lang.Double">12</fidus>

Hvordan kan jeg så i min travasering gennem mine fiduser, hisve værdien ud som objecter ???

Skal jeg virkelig ud i noget med en classloader, og java.lang.reflect.Constructor og andet gejl...?
Eller kan jeg bare hente værdien ud og caste det til hvad jeg har stående i min class attribut, og den skal jo også ordentlig ind i syntaksen.....

Jeg koger, hjælp. !
Avatar billede arne_v Ekspert
22. juli 2003 - 15:50 #1
Det er ikke så slemt.

Lad os sige at du har parset og du har:

String classname;
String value;

og en konvention om at alle dine klasser skal have en constructor
med et argument af typen String så burde:

Class declarg[] = new Class[1];
declarg[0] = Class.forName("java.lang.String");
Object callarg[] = new Object[1];
callarg[0] = value;
Object o = Class.forName(classname).getConstructor(declarg).newInstance(callarg);

være tilstrækkeligt.

Måske ikke ligefrem køn kode. Men trods alt ikke så mange linier.
Avatar billede arne_v Ekspert
22. juli 2003 - 15:51 #2
Men du kan altså ikke bare caste.
Avatar billede kasseper Nybegynder
22. juli 2003 - 16:06 #3
Men kan de fleste objekter i java.lang ikke også kaldes med en streng i konstruktoren ????
Avatar billede arne_v Ekspert
22. juli 2003 - 16:12 #4
Jo netop !

Og normalt er det helle rikke svært at lave en sådan constructor for
sine egne klasse, hvis det kræves.
Avatar billede arne_v Ekspert
22. juli 2003 - 16:13 #5
Så derfor er det et udmærket concept.

[bruger det faktisk selv - dog med en SAX parser i.s.f en DOM parser]
Avatar billede kasseper Nybegynder
23. juli 2003 - 09:09 #6
Mange tak for hjælpen.
Jeg beholder nu min DOM parser, da jeg ikke skal traversere hele mit dokument, men kun en del af det, afhængigt af hvilken metode der kaldes.
Anyway tak for hjælpen, den er som altid når den kommer fra arne_v perfekt.
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