Simplexml_load_file()

kiwi73 -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je souhaiterais realiser un tableau qui regroupe la liste de tous mes produits en php/xml jusq'ici j'ai pu réalisé ça seulement quand j'ai rajouter la case option au tableau pour soit editer un article ou supprimer la premiére fois quand j'ajouter un article ca me le rajoute deux fois dans le tableau et l'a ca me met une erreur:
Warning: simplexml_load_file(): data/produit.xml:32: parser error : EndTag: '</' not found in C:\xampp dans la ligne 86.
merci de votre aide
<?php
//  Je vérifie si on a envoyé une requete (POST de recherche par référence)
                // si c'est le cas: 
                    // je vide le fichier stock.xml et y ajoute uniquement les produits dont leur reference est égal à la valeur saisie
                // sinon (si il n'y a pas de requete (pas de valeur POST))
                    // j'ajoute l'intégralité de produit.xml au fichier stock.xml
    if((isset($_POST['motcle']))&&(strlen($_POST['motcle'])>=1)){
        file_put_contents('data/root.xml', '<?xml version="1.0" encoding="UTF-8"?><produits>');
        foreach (simplexml_load_file('data/produit.xml') as $produit) {
            if(trim($produit['reference']) == trim($_POST['motcle'])){
                file_put_contents('data/root.xml',$produit->asXML(), FILE_APPEND );
            }
        }
        file_put_contents('data/root.xml', '</produits>', FILE_APPEND);
    }else{
        file_put_contents('data/root.xml',file_get_contents('data/produit.xml'));
    }
?>
<!Doctype html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Gestion de stock</title>
    <link rel="stylesheet" href="style/style.css"/>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
        // remplir le tableau dynamiquement en lisant le fichier stock.xml
        $(function(){
            $.ajax({
                type: "GET",
                url: "data/root.xml",
                dataType: "xml",
                success: function(xml){
                    $(xml).find('produit').each(function(){
                        var reference = $(this).attr('reference');
                        var designation = $(this).find('designation').text();
                        var lieu = $(this).find('lieu').text();
                        var zone = $(this).find('zone').text();
                        var date = $(this).find('date').text();
                        var prix = $(this).find('prix').text();
                        $("<tr></tr>").html("<td>" +reference+ "</td><td>" +designation+ 
                        "</td><td>" +lieu+"</td><td>" +zone+"</td><td>" +date+
                        "</td><td>" +prix+ "</td><td></td>").appendTo("#xml_data");
                    });
                }
            });
        });
    </script>
</head>
<body>
    <div id="entete">
   
        <p class="nomsite">GESTION D'INVENTAIRE </p>
        <div id="form">
            <form name="formulaire" method="post" >
                <input id="motcle" type="text" name="motcle" placeholder="Recherche par référence"/>
                <input class="btnfind" type="submit" name="btnsubmit" value="Recherche" />
            </form>
        </div>
    </div>
    <br><br>
        <a href="add.php">Ajouter un nouveau produit</a>
        <br><br><br>
    <table class="table-separateur" cellpadding="3" cellspacing="3" border="2" id="xml_data">
        <tr>
            <th>Référence </th>
            <th>Désignation </th>
            <th>Lieu de stockage </th>
            <th>Zone de stockage </th>
            <th>Date d'achat </th>
            <th>Prix d'achat </th>
            <th>Option</th>
        </tr>

  
    </table>

</body>
</html>


EDIT: Correction des balises de code (jordane)

Configuration: Windows / Firefox 83.0

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
si tu spécifies
php
quand tu utilises les balises de code, nous pourrons plus facilement repéré la ligne 86.
0
kiwi73 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour j'ai pas compris ta reponse
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bonjour,
Pour comprendre la remarque d'Yg_be, il suffit de lire ( ENTIEREMENT !! ) le contenu du lien suivant : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0