Avatar billede eikhorsholm Nybegynder
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"
Avatar billede eikhorsholm Nybegynder
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.
Avatar billede eikhorsholm Nybegynder
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.
Avatar billede arne_v Ekspert
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;
    }
}
Avatar billede arne_v Ekspert
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
Avatar billede eikhorsholm Nybegynder
12. oktober 2006 - 13:06 #5
MANGE MANGE MANGE TAK!!!
Godt nok flot med så meget kodehjælp :-)
Laver du ikke et svar!
Avatar billede arne_v Ekspert
12. oktober 2006 - 13:19 #6
kommer her
Avatar billede arne_v Ekspert
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
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Lead Data Platform Architect

BEC Financial Technologies

Business analyst (Senior)- Scoutz

Politiets Efterretningstjeneste

Sektionsleder til IT-afdelingen i PET

Operate Technology A/S

PHP-udvikler til Drupal