Just nu i M3-nätverket
Jump to content

XML och Java


Prophecy

Recommended Posts

Hej!

 

Jag fortsätter med lite fler java frågor.

 

Jag ska skapa en liten applikation som skall gå att spara med hjälp av XML, är detta svårt? omständigt? jobbigt?

Det handlar alltså om en array och ett par variabler!

 

Tacksam för svar!

 

/Johan

 

 

[EDIT] Självklart ska det sen gå att läsa in den sparade datan

[inlägget ändrat 2003-04-15 00:00:14 av Prophecy]

Link to comment
Share on other sites

svårt, jobbigt eller omständigt?

 

nej, det är det inte... inte klurigare än nåt annat.

först tycker jag att du ska kika lite på XML så du har koll på det, du behöver inte lära dig allt än, det viktiga är att du förstår strukturen på XML-dokument.

 

Det finns två typer av XML-parsers, DOM och SAX, dom använder olika metoder för att utföra jobbet.

 

DOM-parsers läser in hela strukturen i minnet innan du kan börja använda datan. Är enkel att använda. När dokumentet är parsat så finns hela strukturen i objekt. Så du kan t ex fråga "har detta element några underelement", "ge mig alla underelement som hör till det här elementet" osv.

 

SAX-parsers är event-drivna, dvs när dokumentet parsas så triggas metoder för t ex "tag start", "tag end" osv vilket gör att du själv måste koda för vad som skall göras vid parsningen. Det blir lite mer jobb för dig men i gengäld kan en SAX-parsning ske snabbare beroende på hur dokumentet ser ut.

 

 

 

Link to comment
Share on other sites

okej... Men om du skulle förklara för ett barn (läs: mig) hur man enklast sparar en array (för att sedan kunna läsa in den igen) hur skulle du uttrycka dig då?

 

Känns som en lite konstig mening, men du förstår säkert vad jag menar! =)

 

/Johan

 

Link to comment
Share on other sites

-Patrik Johansson-

Hej

Vad för typ av array är det och vad innehåller den?

Storlek?

 

/Neox -(Patrik J)

"Gravitation can not be held responsible for people falling in love"
- citat av Albert Einstein

 

[inlägget ändrat 2003-04-15 18:13:09 av Patrik J Johansson]

Link to comment
Share on other sites

Här är exempel på hur du kan använda en DOM-parser som heter NanoXML:

 

http://web.wanadoo.be/cyberelf/nanoxml/documentation/NanoXML-Java/retrieving.html

 

Tycker att det framgår ganska tydligt. Den beskriver hur man använder den(NanoXML) parsern men de flesta fungerar lika dant(om du nu skulle välja att använda någon annan). Hur du skapar en XML-fil står lite längre ner på sidan.

 

En array och ett par variabler ville du spara... då kanske XML-filen du vill skapa kanske ser ut ungefär:

 

<DATA>

<ARRAY NAME="ANIMALS" TYPE="String">

<VALUE>Kamel</VALUE>

<VALUE>Dromedar</VALUE>

<VALUE>Groda</VALUE>

</ARRAY>

<VAR NAME="number" TYPE="int">5</VAR>

<VAR NAME="offset" TYPE="int">7</VAR>

</DATA>

 

Ovanstående blir:

 

- skapa rot-elementet DATA

- skapa elementet ARRAY med dess attribut och lägg till som "child" till data

- för varje position i arrayen skapa ett element VALUE och lägg till som child till ARRAY

- skapa elementen för variablerna och lägg till DATA

- skriv till fil

 

Förklarar med ord så får du lista ut själv hur det blir i Java, det är roligare för dig och mer lärorikt än att "copy-pejsta", återkom om det blir problem.

 

/b

 

 

Link to comment
Share on other sites

Kan någon ge ett exempel?

Säg att jag har följande XML-fil och vill lista de olika personerna i en liten java-applikation. Säg till exempel att de ska listas i varsin Label eller liknande. Hur ser koden ut för att göra detta? Vilka import-satser m.m. behövs? Behöver DOM-parsern skickas med i det färdiga programmet?

 

<?xml version="1.0" encoding="UTF-8"?>

<data>

<person id="1" namn="Anders" tid="26">

</person>

<person id="2" namn="Bertil" tid="30">

</person>

<person id="3" namn="Calle" tid="45">

</person>

</data>

 

[inlägget ändrat 2003-04-16 15:36:13 av Fredrik_1982]

Link to comment
Share on other sites

Jag omformulerar min fråga lite...

Att det är import net.n3.nanomxml.*; som ska användas förstår jag. Jag har laddat hem parsern men får felmeddelande om att den inte hittar detta package. Jag har lagt jar-filen i en katalog med namn jar (Jag kör j2sdk1.4.1_01). Vad behöver jag mer göra? I JBuilder har jag lyckats få igång det med hjälp av Project Properties, men hur gör man i j2sdk?

 

[inlägget ändrat 2003-04-16 23:15:46 av Fredrik_1982]

Link to comment
Share on other sites

  • 2 weeks later...
Martin Miskowicz

ett litet tips är att kika lite på dom4j (www.dom4j.com)... ett mycket praktiskt dom-paket till java..

 

i fallet med din xml.. så kan det hela se ut enligt

 

: läs in xmln

: ta ut root-elementet

: iterera genom root'ens noder

: för varje nod, ta ut attributen id, namn, tid

: stoppa in de tre attributen i en "Label" och lägg i en lista (alt. hashmap med id som nyckel)

 

du kan göra det ännu enklare genom att använda XPath..

 

: läs in xmln

: ta ut en lista med noder med hjälp av XPath (/data/person)

: iterera genom noderna

: för varje nod, ta ut attributen id, namn, tid

: stoppa in de tre attributen i en "Label" och lägg i en lista (alt. hashmap med id som nyckel)

 

om du använder dig av dom4j till exempel så får du naturligtvis inkludera denna jar i den färdiga applikationen..

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...