IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Parser un .OWL avec SIMPLEXML


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 27
    Par défaut Parser un .OWL avec SIMPLEXML
    Bonjour ,

    Je souhaite parser un .owl avec l'outil SimpleXML.
    Cependant je rencontre un problème car certaine balises sont de ce genre :
    <owl:Class .....>


    j'ai donc un truc dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $xml=simplexml_load_file(fichier.owl');
     
    foreach($xml->{owl:Class} as $c){
    printf("Attribut RDF : %s\n", $c); 
     
    ...}
    mais il y a une erreur au niveau de owl:Class
    j'ai essayer avec {'owl:Class'} aussi mais sans succès ..

    Merci de votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    C'est parce qu'il ne faut pas chercher les éléments 'owl:Class', ils n'existent pas.

    Il faut chercher les éléments 'Class' dans le namespace représenté par owl.

    Comment faire ça avec SimpleXML ? Je ne sais pas, je ne peux pas supporter PHP.
    Là comme ça je suggère l'emploi de registerXPathNamespace('owl', 'http://www.w3.org/2002/07/owl#') puis de xpath('owl:Class')
    Mais il est possible que ça ne soit pas ça. Ce langage et moi on se hait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 27
    Par défaut
    Ah yes ca marche niquel mercii
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $xml->registerXPathNamespace("owl","http://www.w3.org/2002/07/owl#");
    $result = $xml->xpath("owl:Class");
     
    foreach($result as $c){
     
    }

  4. #4
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 27
    Par défaut
    hum en fait ya un petit problème que je viens juste de remarquer

    Voici une partie de mon owl:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <owl:Class rdf:id="Author">
    		<owl:oneOf rdf:parseType="Collection">
    			<owl:Thing rdf:ID="Unknown"/>
    			<owl:Thing rdf:ID="auteur1"/>
    			<owl:Thing rdf:ID="auteur2"/>
    			<owl:Thing rdf:ID="auteur3"/>
    			<owl:Thing rdf:ID="auteur4"/>
    			<owl:Thing rdf:ID="auteur5"/>
    			<owl:Thing rdf:ID="auteur6"/>
     
    		</owl:oneOf>
    	</owl:Class>
     
    	<owl:Class rdf:id="TypeArgument">
    		<owl:oneOf rdf:parseType="Collection">
    			<owl:Thing rdf:ID="scalar"/>
    			<owl:Thing rdf:ID="vector"/>
    			<owl:Thing rdf:ID="vectorString"/>
    			<owl:Thing rdf:ID="dataframe"/>
    			<owl:Thing rdf:ID="factor"/>
    			<owl:Thing rdf:ID="array"/>
    			<owl:Thing rdf:ID="logical"/>
    		</owl:oneOf>
    	</owl:Class>
    Puis dans mon php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    $xml->registerXPathNamespace("owl","http://www.w3.org/2002/07/owl#");
    $owlClass = $xml->xpath("owl:Class");
    $owlOneOf =$xml->xpath("owl:Class/owl:oneOf");
    $owlThing=$xml->xpath("owl:Class/owl:oneOf/owl:Thing");
     
    foreach($owlClass as $c){
     
    foreach ($c->attributes('http://www.w3.org/1999/02/22-rdf-syntax-ns#') as $attribut0 => $item0) {
    	if($item0=="Author"){
    		foreach ($owlOneOf as $tag){
    			foreach($owlThing as $child){
    				foreach ($child->attributes('http://www.w3.org/1999/02/22-rdf-syntax-ns#') as $attribut1 => $valeur1) {
     
    				       if($attribut1=="ID"){
    						$GLOBALS['auteurs'][$nbr_auteurs] = $valeur1;
    						$nbr_auteurs++;
    								}
    							}
    						}
    					}
    			          }
     
    			}
    		}
    Et voila et en fait dans mon tableau il y a pas seulement les nom d'auteurs (auteur1 auteur 2 ) mais aussi les type (scalar ...) : logique vu qu'il y a deux fois "owlOneOf" et qu'il fait un foreach mais je sais pas comment faire pour le faire que pour celui que je veux : id=Author et pas l'autre

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je sais toujours pas parler le PHP, mais a priori je ferais un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $xml->registerXPathNamespace("owl","http://www.w3.org/2002/07/owl#");
    $xml->registerXPathNamespace("rdf","http://www.w3.org/1999/02/22-rdf-syntax-ns#");
     
    foreach($xml->xpath("owl:Class[@rdf:id='Author']/owl:oneOf/owl:Thing@rdf:ID") as $author) {
      // Faire quelque chose avec $author
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [XML] parser un fichier xml avec simplexml
    Par gtraxx dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/08/2011, 22h43
  2. [SimpleXML] Parser un XML avec SimpleXML_Load_File
    Par mathieu3392 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 12/10/2007, 11h11
  3. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52
  4. [JAXB/DOM] Parser Xml : possible avec path reel et non uri !
    Par Jaxofun dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/08/2005, 10h04
  5. parser un fichier avec xerces
    Par traiangueul dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 02/02/2004, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo