gestion base de données XML

février 2014 modifié dans Entraide
Bonjour,

Si j'ai bien lu les posts du forum, je crois qu'il n'est pas possible d'intégrer du code PHP dans un article.

Quelles seraient vos recommandations pour extraire des données d'un fichier xml
dans un article?

exemple je dispose d'un ficheir xml
[== Indéfini ==]
<?xml version="1.0" encoding="UTF-8"?>
	
<rows>	
	<row>
    <0>1</0>
    <Indice>Indice1</Indice>
    <Massif>massif1</Massif>
    <NomDeVoie>name1</NomDeVoie>
    <reussite>0ui</reussite>
    <existeImage>Oui</existeImage>
    <Style>Style1</Style>
    <Situation>paris</Situation>
  </row>
  <row>
    <0>2</0>
    <Indice>Indice2</Indice>
    <Massif>massif2</Massif>
    <NomDeVoie>name2</NomDeVoie>
    <reussite>Non</reussite>
    <existeImage>Non</existeImage>
    <Style>Style2</Style>
    <Situation>lyon</Situation>
  </row>
</row

je veux éditer dans l'article la chaine de caractère de la balise <NomDeVoie> selon une variable renseignée préalablement ?

exemple: je fournis "indice2" et j'obtiens "name2"

j'ai cherché des tutos sur le net mais sans guère de succès hormis avec l'utilisation de PHP comme ici:

http://blog.teamtreehouse.com/how-to-parse-xml-with-php5

Merci bien

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Bonjour,

    Apparemment, aucun hook n'existe pour les articles.

    Tu vas devoir modifier le code à un des 2 endroits suivants:
    - soit la fonction public function f() dans la class plxRecord
    - soit la fonction public function artContent($chapo=true) dans la class plxShow
    et ensuite utiliser une expression régulière pour modifier le contenu de ton article en fonction de tes indices
    Remarque pour ton fichier xml, je verrais plus une balise comme ceci pour indexer la recherche <row indice="Indice1"><massif>Massif1</massif>...</row>
  • Bonjour L'Ardèche ;-)

    Ok bien reçu, je fouille dans fonction public function f()

    concernant le référencement des lignes c'est le produit d'une extraction d'une base sql de plus de 4000 lignes. point à revoir effectivement c'est pas top lisible.

    merci
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Peux-tu donner plus de détails sur ce que tu veux faire, car je doute qu'il y ait besoin de modifier PluXml pour faire ce que tu veux.

    Tu veux...
    - lire un fichier xml à toi pour récupérer des données ?
    - enregistrer des données dans les fichiers xml des articles de PluXml dans des nouveaux champs ?

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Bonjour Stéphane,

    - je veux simplement extraire d'un fichier xml à "moi" l'ensemble des valeurs pour une variable donnée

    comme précisé ci dessus je cherche par exemple à extraire les éléments liés à la variable "indice2" pour obtenir dans l'article ceci:

    <Massif>massif2</Massif>
    <NomDeVoie>name2</NomDeVoie>
    <reussite>Non</reussite>
    <existeImage>Non</existeImage>
    <Style>Style2</Style>
    <Situation>lyon</Situation>

    Un peu à l'identique de ceci : http://www.w3schools.com/xml/tryit.asp?filename=tryxml_app_first

    Merci
  • StéphaneStéphane Member, Former PluXml Project Manager
    Alors tout simplement avec SimpleXml
    http://www.php.net/manual/fr/simplexml.examples-basic.php

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Heu .... oui dans une page statique mais pas dans une page article, ..... non?
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Heu ... il est pas interdit de se créer un template à la mimine.

    Dans ton thème tu dupliques le template article.php et dans la copie entre les balises <section>, tu remplaces
    [== PHP ==]
    <section>
    	<?php $plxShow->artContent(); ?>
    </section>
    
    par
    [== PHP ==]
    <section>
    <?php
     $myChapo = $plxShow->plxMotor->plxRecord_arts->f('chapo');
     $myContent = $plxShow->plxMotor->plxRecord_arts->f('content');
     // bien parser $myContent avec preg_replace ou str_replace et le fichier XML
     echo $myChapo."\n";
     echo $myContent."\n";
    ?>
    </section>
    

    Et c'est prêt !
  • Merci pour cette proposition.

    Il me faut plus de temps pour fouiller avec mes petits doigts sur le clavier.

    La V5.3 me pose des pbs car à priori les scripts ne fonctionnent plus dans un article :(

    Avant de l'affirmer je me dois de vérifier mes dires.

    A bientôt et merci pour la rapidité de proposition.
  • Comment procède t on , si cela est possible , pour intégrer un fichier xml
    sans perdre la mise en forme associée d'un xls dans un article?

    Merci.
  • StéphaneStéphane Member, Former PluXml Project Manager
    kristian.tz a écrit:
    La V5.3 me pose des pbs car à priori les scripts ne fonctionnent plus dans un article :(

    S'il est question de mettre du php dans les articles, cela n'a jamais été possible. Il n'y a que dans les pages statiques où l'on peut inclure du code php

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Pourquoi ne pas mettre ton code dans le fichier de config.php de ton thème pour en faire un shortcode (voir le plugin spxshorcode). Puis d'appeler le shorcode dans ton article tout simplement (avec variable ou pas).
  • non non simplement un appel de fichier xml exemple:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="massif.xsl" type="text/xsl" ?>
  • J'opte pour iframe.
Connectez-vous ou Inscrivez-vous pour répondre.