Simplexml_load_file()

Fermé
kiwi73 - Modifié le 28 nov. 2020 à 11:46
jordane45 Messages postés 38464 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 12 avril 2025 - 28 nov. 2020 à 11:16
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 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 Ambassadeur 1 577
27 nov. 2020 à 17:42
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 mardi 21 février 2017 Statut Membre Dernière intervention 28 novembre 2020
28 nov. 2020 à 10:12
bonjour j'ai pas compris ta reponse
0
jordane45 Messages postés 38464 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 12 avril 2025 4 741
28 nov. 2020 à 11:16
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