11. oktober 2006 - 22:38
Der er
6 kommentarer og 1 løsning
Opret array ud fra XML.
Jeg har et XML-dokument som er opbygget således: <brugergruppe> <bruger> <navn>jens</navn> <adresse>vej1</adresse> <tlf>12345678</tlf> </bruger> <bruger> <navn>jens</navn> <adresse>vej1</adresse> <tlf>12345678</tlf> </bruger> </brugergruppe> <brugergruppe> <bruger> <navn>jens</navn> <adresse>vej1</adresse> <tlf>12345678</tlf> </bruger> <bruger> <navn>jens</navn> <adresse>vej1</adresse> <tlf>12345678</tlf> </bruger> </brugergruppe> Der kan være vilkårligt antal brugergrupper og vilkårligt antal brugere i hver brugergruppe. Er det muligt, at lave en ArrayList i Java som med eksemplet ovenover så således ud: "brugergruppe","jens:vej1:12345678","jens:vej1:12345678","brugergruppe","jens:vej1:12345678","jens:vej1:12345678"
Annonceindlæg tema
11. oktober 2006 - 22:39
#1
Dataet i en bruger skal altså dannes som en string adskilt af kolon og strengen "brugergruppe" skal komme en enkel gang for hver ny brugergruppe.
11. oktober 2006 - 22:46
#2
Det skal lige tilføjes, der kan godt findes andre tags inde i en bruger, inde i en brugergruppe end dem jeg har vist. MEN det er kun dem som jeg har med i eksemplet som skal benyttes. Alle andre skal ignores.
11. oktober 2006 - 23:06
#3
import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class XML2ArrayList { public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new File("C:\\all.xml")); NodeList brugergrupper = doc.getElementsByTagName("brugergruppe"); for (int i = 0; i < brugergrupper.getLength(); i++) { System.out.println("start brugergruppe"); Element enbrugergruppe = (Element)brugergrupper.item(i); NodeList brugere = enbrugergruppe.getElementsByTagName("bruger"); for (int j = 0; j < brugere.getLength(); j++) { System.out.println("start bruger"); Element enbruger = (Element)brugere.item(i); NodeList oplysninger = enbruger.getChildNodes(); for(int k = 0; k < oplysninger.getLength(); k++) { String tag = oplysninger.item(k).getNodeName(); if(tag.equals("navn")) { System.out.println("navn=" + oplysninger.item(k).getFirstChild().getNodeValue()); } if(tag.equals("adresse")) { System.out.println("adresse=" + oplysninger.item(k).getFirstChild().getNodeValue()); } if(tag.equals("tlf")) { System.out.println("tlf=" + oplysninger.item(k).getFirstChild().getNodeValue()); } } } } return; } }
11. oktober 2006 - 23:13
#4
ovenstaaende kode parser XML filen jeg forstaar ikke helt hvordan du vil have data men det burde vel vare til at finde ud af
12. oktober 2006 - 13:06
#5
MANGE MANGE MANGE TAK!!! Godt nok flot med så meget kodehjælp :-) Laver du ikke et svar!
12. oktober 2006 - 13:19
#6
kommer her
12. oktober 2006 - 13:20
#7
NB: jeg smækkede lige et <all></all> omkring det hele for at gøre det til valid XML
Kurser inden for grundlæggende programmering