Question

Je travaille toujours sur un fichier RDF particulier, mais il semble que quelque chose ne va pas dans le bon sens pour moi. Le code de mon fichier RDF est le suivant:

<?xml version = '1.0"?>

<rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc = "http://purl.org/dc/elements/1.1/"
xmlns:dp = "http://www.telemed.uniud.it/dp/0.1/"
xmlns:dcq = "http://purl.org/dc/qualifiers/1.0/" >


<rdf:Description rdf:about="m021">
    <dc:creator>CAB</dc:creator>
    <dc:title>m021</dc:title>
    <dc:subject></dc:subject>
    <dc:date>null</dc:date>
    <dc:description></dc:description>
    <dc:identifier>1</dc:identifier>
    <dc:relation.requires rdf:resource="./20x/m02120x"/>
    <dc:relation.requires rdf:resource="./10x/m02110x"/>
    <dc:relation.requires rdf:resource="./5x/m0215x"/>
    <dc:relation.requires rdf:resource="./2.5x/m0212.5x"/>
    <dc:relation.requires rdf:resource="preview.jpg"/>
    <dp:resolution rdf:parseType="Resource">
      <dp:unit>micron</dp:unit>
      <dp:x>0.23235294</dp:x>
      <dp:y>0.23046875</dp:y>
    </dp:resolution>
    <dp:objective rdf:parseType="Resource">
      <dp:magnification>20.0</dp:magnification>
      <dp:na>0.6</dp:na>
    </dp:objective>
    <dp:imsize rdf:parseType="Resource">
      <dp:x>316</dp:x>
      <dp:y>236</dp:y>
    </dp:imsize>
</rdf:Description>

<rdf:Description rdf:about="./20x/m02120x">
    <dp:type>plane</dp:type>
    <dp:magnification>20</dp:magnification>
    <dp:matrix rdf:parseType="Resource">
        <dp:xrange>1-103</dp:xrange>
        <dp:yrange>1-86</dp:yrange>
    </dp:matrix>
</rdf:Description>

</rdf:RDF>

J'ai chargé ce fichier en utilisant URLLoader et dans mon script, je suis en train d'accéder à certaines propriétés. Par exemple, je dois accéder à la propriété dp: x, niché dans dp: résolution, nichée dans rdf: Description et dans mon esprit le bon morceau de code est:

// supposons que 'résultat: XML' est la variable contenant tous mes RDF et XMLLabel une étiquette

xmlLabel.text = 'essai:' + result.Description.resolution.x;

mais ce code me donne un résultat vide.

J'ai essayé un autre (et non élégante façon) de le faire passer la ligne suivante:

xmlLabel.text = 'essai:' + result.child (0) .child (11) .child (1);

et ce morceau de wokrs de code, me donnant la valeur 0.23235294 (comme prévu)

Ma question est: ce que je fais quelque chose de mal appeler les properities? J'ai aussi essayé la notation "double point" (par exemple result..Description) sans résultat.

Le problème pourrait être que le fichier sur lequel je travaille est pas un fichier XML valide? Dans ce cas, est-il un moyen d'adapter mon RDF à un XML valide afin de le faire fonctionner?

Merci pour vos réponses

David

Était-ce utile?

La solution

Salut David (oui il est moi, cheng :)). La raison pour laquelle vous avez des résultats est vide que la balise est spécifiée dans un espace de noms, et vous devez le spécifier lors de l'accès à la balise. Vous pouvez trouver des informations utiles dans ce tutoriel flex .

Fondamentalement, vous devez déclarer une variable d'espace de noms, comme:

var rdf:Namespace = new Namespace ("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
var dp:Namespace = new Namespace ("http://www.telemed.uniud.it/dp/0.1/");

et ensuite l'utiliser lors de l'accès des nœuds, comme:

var resolution = result.ref::Description.dp::resolution
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top