Accesso a bambini con un determinato nome tramite JDOM
Domanda
voglio accedere i bambini con skos: Concept. getChildren ( "skos: Concept") e getChildren ( "Concept") sia darmi una lista vuota che cosa devo usare al posto
?.Il mio esempio dei dati:
<owl:AnnotationProperty rdf:about="&dc;identifier"/>
<owl:ObjectProperty rdf:about="&skos;narrower"/>
<skos:Concept rdf:about="#concept:0_acetylpantolactone:4253501">
<skos:prefLabel xml:lang=""
>0-acetylpantolactone</skos:prefLabel>
<skos:hiddenLabel xml:lang=""
>2(3H)-Furanone, 3-(acetyloxy)dihydro-4,4-dimethyl-, (R)-</skos:hiddenLabel>
<dc:identifier rdf:resource="urn:CHID:028227363"/>
<dc:identifier rdf:resource="urn:MESH:C014305"/>
</skos:Concept>
<skos:Concept rdf:about="#concept:1012S:4202655">
<skos:prefLabel xml:lang="">1012S</skos:prefLabel>
<skos:hiddenLabel xml:lang="" >C19-H16-Cl2-N6-O</skos:hiddenLabel>
<skos:hiddenLabel xml:lang="">Compound 1012S</skos:hiddenLabel>
<dc:identifier rdf:resource="urn:CAS:95211_91_9"/>
<dc:identifier rdf:resource="urn:CHID:095211919"/>
</skos:Concept>
Soluzione
Secondo il Javadoc per getChildren (String): "Ciò restituisce un elenco di tutti gli elementi figlio annidati direttamente (un livello profondo) all'interno di questo elemento con il nome dato locale e che appartengono a nessun namespace". Credo che il problema è il vostro elementi hanno uno spazio dei nomi, e si dovrebbe essere utilizzando il getChildren (String, Namespace):
Namespace ns = Namespace.getNamespace("skos", [String uri]);
List l = elem.getChildren("Concept", ns);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow