/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
get value from a xml with SAXBuilder
Fra : Kasper


Dato : 11-10-04 09:45

Hej

Ved koden nedenfor forsøger jeg at få fat i den value der eksisterer for de
entries der er specificeret med "categories" kan i sige mig hvad jeg gør
galt.

Mvh. Kasper

ArrayList ServersToCats = new ArrayList(), serverNames = new
ArrayList();
Document metaDocument = null;
try {
metaDocument = new SAXBuilder().build(new
URL("http://servlet.itu.dk/user/hniss/metaservice"));
}
catch(Exception ex) {
out.println(ex.getMessage());
}

Iterator itSN; // Iterator over serverNames.
if(metaDocument != null) { // Find serverNames
itSN =
metaDocument.getRootElement().getChildren("jokeservers").iterator();
while(itSN.hasNext())

serverNames.add(((Element)itSN.next()).getChild("categories").getText());
}



 
 
Kristian Thy (11-10-2004)
Kommentar
Fra : Kristian Thy


Dato : 11-10-04 11:10

Kasper uttered:
> Ved koden nedenfor forsøger jeg at få fat i den value der eksisterer for de
> entries der er specificeret med "categories" kan i sige mig hvad jeg gør
> galt.

Det er noget nemmere hvis du siger

- Hvad koden forventes at gøre.
- Hvad der rent faktisk sker når du kører koden.

> ArrayList ServersToCats = new ArrayList(), serverNames = new ArrayList();
> Document metaDocument = null;
> try {
> metaDocument = new SAXBuilder().build(new URL("http://servlet.itu.dk/user/hniss/metaservice"));
> }
> catch(Exception ex) {
> out.println(ex.getMessage());
> }
>
> Iterator itSN; // Iterator over serverNames.
> if(metaDocument != null) { // Find serverNames
> itSN = metaDocument.getRootElement().getChildren("jokeservers").iterator();
> while(itSN.hasNext())
> serverNames.add(((Element)itSN.next()).getChild("categories").getText());
> }

Prøv at sætte namespace "cat" på eksplicit, altså: getChild("cat:categories");

- Er der nogen grund til at du ikke spørger i kursets newsgroup? Som du
kan se kræver det specifik viden om problemstillingen at hjælpe med
det konkrete problem her.
- Skulle den her opgave ikke have været afleveret i tirsdags?

\\kristian
--
<URL:http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt>
<URL:http://home.att.net/~jbcole/humor/Microsoft_patents.htm>

Kasper (11-10-2004)
Kommentar
Fra : Kasper


Dato : 11-10-04 12:12

Hej

Forventes at returnere de navne der eksisterer for "categories" entieen i
denne xml http://servlet.itu.dk/user/hniss/metaservice men den returnere
intet.

Mvh. Kasper

"Kristian Thy" <thy@it.edu> wrote in message
news:2sv4fpF1os611U1@uni-berlin.de...
> Kasper uttered:
> > Ved koden nedenfor forsøger jeg at få fat i den value der eksisterer for
de
> > entries der er specificeret med "categories" kan i sige mig hvad jeg gør
> > galt.
>
> Det er noget nemmere hvis du siger
>
> - Hvad koden forventes at gøre.
> - Hvad der rent faktisk sker når du kører koden.
>
> > ArrayList ServersToCats = new ArrayList(), serverNames = new
ArrayList();
> > Document metaDocument = null;
> > try {
> > metaDocument = new SAXBuilder().build(new
URL("http://servlet.itu.dk/user/hniss/metaservice"));
> > }
> > catch(Exception ex) {
> > out.println(ex.getMessage());
> > }
> >
> > Iterator itSN; // Iterator over serverNames.
> > if(metaDocument != null) { // Find serverNames
> > itSN =
metaDocument.getRootElement().getChildren("jokeservers").iterator();
> > while(itSN.hasNext())
> >
serverNames.add(((Element)itSN.next()).getChild("categories").getText());
> > }
>
> Prøv at sætte namespace "cat" på eksplicit, altså:
getChild("cat:categories");
>
> - Er der nogen grund til at du ikke spørger i kursets newsgroup? Som du
> kan se kræver det specifik viden om problemstillingen at hjælpe med
> det konkrete problem her.
> - Skulle den her opgave ikke have været afleveret i tirsdags?
>
> \\kristian
> --
> <URL:http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt>
> URL:http://home.att.net/~jbcole/humor/Microsoft_patents.htm



Kristian Thy (11-10-2004)
Kommentar
Fra : Kristian Thy


Dato : 11-10-04 12:34

Kasper uttered:
> Forventes at returnere de navne der eksisterer for "categories" entieen i
> denne xml http://servlet.itu.dk/user/hniss/metaservice men den returnere
> intet.

Prøv efter du har indlæst meta-dokumentet med XMLBuilderen at erklære et
namespace:

Namespace ns = new Namespace("meta", ...);

og giv det med til getChildren() og getChild() - disse findes i to
versioner, den som du bruger der bare tager en String, og så en hvor de
tager en String og et Namespace.

   <URL:http://www.jdom.org/docs/apidocs/org/jdom/Element.html>

Samtidig skal du så muligvis også tilføje "meta:" foran elementnavnet,
så det bliver noget i denne retning:

..getChildren("meta:jokeservers",ns);

\\kristian
--
<URL:http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt>
<URL:http://home.att.net/~jbcole/humor/Microsoft_patents.htm>

Kasper (11-10-2004)
Kommentar
Fra : Kasper


Dato : 11-10-04 13:02

Hej

Har prøvet denne men "debug: 02" kommer aldrig ud, som om den ikke fanger
nogle Children's

public void printCategories(PrintWriter out, boolean addPrefix) {
ArrayList ServersToCats = new ArrayList(), serverNames = new
ArrayList();
Document metaDocument = null;
try {
metaDocument = new SAXBuilder().build(new
URL("http://servlet.itu.dk/user/hniss/metaservice"));
}
catch(Exception ex) {
out.println(ex.getMessage());
}

Namespace ns =
Namespace.getNamespace("meta","http://servlet.itu.dk/user/hniss/metaservice"
);

Iterator itSN; // Iterator over serverNames.
if(metaDocument != null) { // Find serverNames
//itSN =
metaDocument.getRootElement().getChildren("jokeservers",ns).iterator();
itSN =
metaDocument.getRootElement().getChildren("meta:jokeservers",ns).iterator();
out.println("debug: 01");
while(itSN.hasNext())
out.println("debug: 02");

//serverNames.add(((Element)itSN.next()).getChild("categories",nx).getText()
);
}

Mvh. Kasper

"Kristian Thy" <thy@it.edu> wrote in message
news:2sv9e2F1pd6gnU1@uni-berlin.de...
> Kasper uttered:
> > Forventes at returnere de navne der eksisterer for "categories" entieen
i
> > denne xml http://servlet.itu.dk/user/hniss/metaservice men den returnere
> > intet.
>
> Prøv efter du har indlæst meta-dokumentet med XMLBuilderen at erklære et
> namespace:
>
> Namespace ns = new Namespace("meta", ...);
>
> og giv det med til getChildren() og getChild() - disse findes i to
> versioner, den som du bruger der bare tager en String, og så en hvor de
> tager en String og et Namespace.
>
> <URL:http://www.jdom.org/docs/apidocs/org/jdom/Element.html>
>
> Samtidig skal du så muligvis også tilføje "meta:" foran elementnavnet,
> så det bliver noget i denne retning:
>
> .getChildren("meta:jokeservers",ns);
>
> \\kristian
> --
> <URL:http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt>
> <URL:http://home.att.net/~jbcole/humor/Microsoft_patents.htm>



Kristian Thy (11-10-2004)
Kommentar
Fra : Kristian Thy


Dato : 11-10-04 13:42

Kasper uttered:
> Har prøvet denne men "debug: 02" kommer aldrig ud, som om den ikke fanger
> nogle Children's

Og du fik samme resultat med getchildren("jokeservers",ns)?

BTW, kan du overtales til at klippe i det du svarer på, samt ikke at
topposte? <URL:http://usenet.dk/netikette/citatteknik.html>

\\kristian
--
<URL:http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt>
<URL:http://home.att.net/~jbcole/humor/Microsoft_patents.htm>

Kasper (11-10-2004)
Kommentar
Fra : Kasper


Dato : 11-10-04 14:03

> Og du fik samme resultat med getchildren("jokeservers",ns)?

ja, undre mig meget.. kan det have noget med xml'ens opbygning. Er det det
korrekte root element "jokeservers" jeg benytter.

> BTW, kan du overtales til at klippe i det du svarer på, samt ikke at
> topposte? <URL:http://usenet.dk/netikette/citatteknik.html>

sorry.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste