Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de parsing sur XML

Sujet résolu
    19 avril 2013 à 14:45:37

    J'ai un fichier XML qui se présente comme ceci : 

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <feed xml:base="http://wcf.tourinsoft.com/Syndication/cdt43/69e53dfc-1433-4a15-ba1a-38a3d838c3d2/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
      <title type="text">Objects</title>
      <id>http://wcf.tourinsoft.com/Syndication/cdt43/69e53dfc-1433-4a15-ba1a-38a3d838c3d2/Objects</id>
      <updated>2013-04-18T12:26:52Z</updated>
      <link rel="self" title="Objects" href="Objects" />
      <entry>
        <id>http://wcf.tourinsoft.com/Syndication/cdt43/69e53dfc-1433-4a15-ba1a-38a3d838c3d2/Objects('FMAAUV043FS0002K')</id>
        <title type="text">LES MUSICALES DU PUY-EN-VELAY</title>
        <published>2006-04-19T11:27:21+02:00</published>
        <updated>2013-03-30T14:37:38+01:00</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="SyndicObject" href="Objects('FMAAUV043FS0002K')" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Searchs" type="application/atom+xml;type=feed" title="Searchs" href="Objects('FMAAUV043FS0002K')/Searchs" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Structure" type="application/atom+xml;type=entry" title="Structure" href="Objects('FMAAUV043FS0002K')/Structure" />
        <category term="TourInSoft.V5.Syndication.Syndication_MairieduPuyManifestation_e607ee0bb404423bb148d8a78b5bb8b4.SyndicObject" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <m:test>coucou</m:test>
    	  <properties>
            <d:SyndicObjectID>FMAAUV043FS0002K</d:SyndicObjectID>
            <d:Published m:type="Edm.DateTime">2006-04-19T11:27:21</d:Published>
            <d:Updated m:type="Edm.DateTime">2013-03-30T14:37:38</d:Updated>
            <d:SyndicObjectName>LES MUSICALES DU PUY-EN-VELAY</d:SyndicObjectName>
            <d:SyndicStructureId m:type="Edm.Guid">cd34bbe7-143f-449e-aa5e-8229e8667b74</d:SyndicStructureId>
            <d:GmapLatitude>45.0447780</d:GmapLatitude>
            <d:GmapLongitude>3.8872582</d:GmapLongitude>
            <d:ObjectTypeFix>6129ECC4-C110-4918-9FFE-AE007886F505</d:ObjectTypeFix>
            <d:ObjectTypeName>Fêtes et manifestations</d:ObjectTypeName>
            <d:SyndicObjectOrder m:type="Edm.Int64">1</d:SyndicObjectOrder>
            <d:themerespirando m:null="true" />
            <d:descriptif>40ème anniversaire de ce Festival de Musiques Latines. Au cœur de la haute ville du Puy-en-Velay, le Festival ouvre chaque année ses portes aux musiques du monde latin. L'ambiance et la qualité des concerts en font un rendez-vous incontournable.
    Des stages musicaux et techniques sont proposés.</d:descriptif>
            <d:marque m:null="true" />
            <d:adresse1 m:null="true" />
            <d:nomsalle m:null="true" />
            <d:ecotourismedescriptif m:null="true" />
            <d:datefin>19/07/2013</d:datefin>
            <d:telephone xml:space="preserve"> 06 72 58 27 67 #  04 71 09 38 41</d:telephone>
            <d:codepostal m:null="true" />
            <d:opensystemtype m:null="true" />
            <d:tourismehandicap m:null="true" />
            <d:insee>43157</d:insee>
            <d:nomoffre>LES MUSICALES DU PUY-EN-VELAY</d:nomoffre>
            <d:zone xml:space="preserve">  Département Haute-Loire # Agglomération du Puy-en-Velay # ALT du Velay</d:zone>
            <d:adresse1suite m:null="true" />
            <d:stage>oui</d:stage>
            <d:diaporama m:null="true" />
            <d:ecotourisme m:null="true" />
            <d:langueparlee m:null="true" />
            <d:type>Danse # Musique</d:type>
            <d:altitude m:null="true" />
            <d:precisionlieu m:null="true" />
            <d:commune>PUY-EN-VELAY (LE)</d:commune>
            <d:video m:null="true" />
            <d:datedebut>12/07/2013</d:datedebut>
            <d:dateouverture>Du&amp;nbsp;12/07/2013 au&amp;nbsp;19/07/2013</d:dateouverture>
            <d:opensystemcodeproduit m:null="true" />
            <d:adresse2 m:null="true" />
            <d:nomcontact xml:space="preserve"> Madame DUCHAMP-VIEUBLE Nathalie #  Madame JOUFFRE Marielle</d:nomcontact>
            <d:categorie>Concert # Festival # Spectacle</d:categorie>
            <d:urlreservation m:null="true" />
            <d:longitude>3.8872582</d:longitude>
            <d:photo m:null="true" />
            <d:latitude>45.0447780</d:latitude>
            <d:theme>Chorale # Danse # Musiques du monde</d:theme>
            <d:opensystemfournisseur m:null="true" />
            <d:mail xml:space="preserve"> lesmusicales@orange.fr</d:mail>
            <d:adresse3 m:null="true" />
            <d:diaporama_DIAPO m:null="true" />
            <d:photo_DIAPO m:null="true" />
          </properties>
        </content>
      </entry>
      <entry>
        <id>http://wcf.tourinsoft.com/Syndication/cdt43/69e53dfc-1433-4a15-ba1a-38a3d838c3d2/Objects('FMAAUV043FS0002M')</id>
        <title type="text">INTERFOLK - FESTIVAL FOLKLORIQUE INTERNATIONAL DU PUY-EN-VELAY</title>
        <published>2006-04-19T11:50:05+02:00</published>
        <updated>2013-03-30T14:38:07+01:00</updated>
        <author>
          <name />
        </author>
        <link rel="edit" title="SyndicObject" href="Objects('FMAAUV043FS0002M')" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Searchs" type="application/atom+xml;type=feed" title="Searchs" href="Objects('FMAAUV043FS0002M')/Searchs" />
        <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Structure" type="application/atom+xml;type=entry" title="Structure" href="Objects('FMAAUV043FS0002M')/Structure" />
        <category term="TourInSoft.V5.Syndication.Syndication_MairieduPuyManifestation_e607ee0bb404423bb148d8a78b5bb8b4.SyndicObject" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
        <content type="application/xml">
          <properties>
            <d:SyndicObjectID>FMAAUV043FS0002M</d:SyndicObjectID>
            <d:Published m:type="Edm.DateTime">2006-04-19T11:50:05</d:Published>
            <d:Updated m:type="Edm.DateTime">2013-03-30T14:38:07</d:Updated>
            <d:SyndicObjectName>INTERFOLK - FESTIVAL FOLKLORIQUE INTERNATIONAL DU PUY-EN-VELAY</d:SyndicObjectName>
            <d:SyndicStructureId m:type="Edm.Guid">cd34bbe7-143f-449e-aa5e-8229e8667b74</d:SyndicStructureId>
            <d:GmapLatitude>45.0448456</d:GmapLatitude>
            <d:GmapLongitude>3.8827241</d:GmapLongitude>
            <d:ObjectTypeFix>6129ECC4-C110-4918-9FFE-AE007886F505</d:ObjectTypeFix>
            <d:ObjectTypeName>Fêtes et manifestations</d:ObjectTypeName>
            <d:SyndicObjectOrder m:type="Edm.Int64">2</d:SyndicObjectOrder>
            <d:themerespirando m:null="true" />
            <d:descriptif>La culture du monde se donne rendez-vous dans toute la Haute-Loire pour fêter l'amitié entre les peuples à travers la danse, la musique et le chant. Spectacles, animations, défilés... au Puy-en-Velay et dans une quinzaine de communes du département. Vous pourrez approcher des cultures différentes venant des cinq continents. Près de 300 danseurs et musiciens.</d:descriptif>
            <d:marque m:null="true" />
            <d:adresse1 m:null="true" />
            <d:nomsalle m:null="true" />
            <d:ecotourismedescriptif m:null="true" />
            <d:datefin>28/07/2013</d:datefin>
            <d:telephone xml:space="preserve"> 04 71 02 02 84</d:telephone>
            <d:codepostal m:null="true" />
            <d:opensystemtype m:null="true" />
            <d:tourismehandicap m:null="true" />
            <d:insee>43157</d:insee>
            <d:nomoffre>INTERFOLK - FESTIVAL FOLKLORIQUE INTERNATIONAL DU PUY-EN-VELAY</d:nomoffre>
            <d:zone xml:space="preserve">  Département Haute-Loire # Agglomération du Puy-en-Velay # ALT du Velay</d:zone>
            <d:adresse1suite m:null="true" />
            <d:stage>oui</d:stage>
            <d:diaporama m:null="true" />
            <d:ecotourisme m:null="true" />
            <d:langueparlee m:null="true" />
            <d:type>Culturelle # Danse # Musique # Traditions et folklore</d:type>
            <d:altitude m:null="true" />
            <d:precisionlieu m:null="true" />
            <d:commune>PUY-EN-VELAY (LE)</d:commune>
            <d:video m:null="true" />
            <d:datedebut>22/07/2013</d:datedebut>
            <d:dateouverture>Du&amp;nbsp;22/07/2013 au&amp;nbsp;28/07/2013</d:dateouverture>
            <d:opensystemcodeproduit m:null="true" />
            <d:adresse2 m:null="true" />
            <d:nomcontact xml:space="preserve"> Monsieur CHALENDARD Gérard</d:nomcontact>
            <d:categorie>Animation # Défilé Cortège Parade # Festival # Spectacle</d:categorie>
            <d:urlreservation m:null="true" />
            <d:longitude>3.8827241</d:longitude>
            <d:photo m:null="true" />
            <d:latitude>45.0448456</d:latitude>
            <d:theme>Danse # Musiques du monde</d:theme>
            <d:opensystemfournisseur m:null="true" />
            <d:mail xml:space="preserve"> interfolk@gmail.com</d:mail>
            <d:adresse3 m:null="true" />
            <d:diaporama_DIAPO m:null="true" />
            <d:photo_DIAPO m:null="true" />
          </properties>
        </content>
        <geo:lat xmlns:geo="http://www.georss.org/georss">45.0448456</geo:lat>
        <geo:long xmlns:geo="http://www.georss.org/georss">3.8827241</geo:long>
      </entry>
    </feed>

    Quand j'enlève les d: avant les balises, mon parser arrive à prendre les valeurs du XML. Mais ce d: me pose problème. 
    Y aurait-il une possibilité de l'enlever grâce a du code ? 

    J'ai trouvé un problème très similaire au mien, mais je n'arrive pas a comprendre la réponse (qui pourtant a l'air très correcte) et plus particulièrement la doc qui a été mise par la réponse acceptée. 

    http://stackoverflow.com/questions/7755859/android-sax-not-parsing-dccreator

    En espérant que quelqu'un puisse me donner un coup de main pour ce petit problème qui j'espère n'est pas difficile a résoudre ! :)

    Merci !

    EDIT : Pour une raison toujours inconnue a ce jour, ça a marché sans que je n'aie touché a rien. Comme quoi, l'informatique, c'est parfois très mariole ... TO BE CONTINUED ... Sujet résolu.

    -
    Edité par omnisius 19 avril 2013 à 16:06:53

    • Partager sur Facebook
    • Partager sur Twitter
      14 mai 2013 à 14:17:00

      Bonjour,



      J'ai le même souci, sur à peu pret le même type de flux : 


      Ta balise <properties> apparait comme <m:properties> chez moi, mais l'idée est la même : j'aimerais parcourir cette balise, pour récupérer certains attributs .


      J'ai essayé quelque chose de cette forme, 
      foreach ($xml->xpath('//m:properties') as $item) {
      
      		print_r($item);
      
      		echo "<h4>".$item->d:typereservation."</h4>";
      
      }


      Mais mon print_r() ne renvoie rien, et la ligne d'en dessous non plus.

      Je pense que c'est le fait d'avoir m: qui pose problème.

      Aurais tu une piste (un brin de code?) pour m'aider?

      Merci,

      Gaëtan

      -
      Edité par Gaëtan_ 14 mai 2013 à 14:28:30

      • Partager sur Facebook
      • Partager sur Twitter

      Problème de parsing sur XML

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown