Maison  >  Questions et réponses  >  le corps du texte

Mettre à jour l'espace de noms XML avec les données du formulaire PHP

<p>Dans l'exemple ci-dessous, un formulaire PHP met à jour le XML avec le texte saisi dans le champ.</p> <p>XML et labela.xml:</p> <pre class="brush:php;toolbar:false;"><?xml version="1.0" encodage="UTF-8"?> <inventeurs> <personne> <nom>change1</nom> <commentaire>change2</commentaire> </personne> </inventeurs></pre> <p> <pre class="brush:php;toolbar:false;"><script src="https://code.jquery.com/jquery-latest.min.js"></script> <?php $xml = nouveau DOMDocument("1.0", "utf-8"); $xml->formatOutput = true; $xml->preserveWhiteSpace = false; $xml->load("labela.xml"); //Obtenir l'élément de l'élément $element = $xml->getElementsByTagName("personne")->item(0); //Charger les éléments enfants $nom = $element->getElementsByTagName("nom")->item(0); $comment = $element->getElementsByTagName("commentaire")->item(0); //Remplacer les anciens éléments par des nouveaux $element->replaceChild($nom, $nom); $element->replaceChild($commentaire, $commentaire); ?> <?php if (isset($_POST["submit"])) { $name->nodeValue = $_POST["namanya"]; $comment->nodeValue = $_POST["commentnya"]; htmlentities($xml->save("labela.xml")); } ?> <form method="POST" action=''> nom <type d'entrée="nom-texte" value="<?php echo $name->nodeValue; ?>" nom = "namanya" /> comment <input type="text-comment" value="<?php echo $comment->nodeValue; ?>" name="commentnya"/> <input name="soumettre" type="soumettre" /> </form></pre> <p></p> <pre class="brush:php;toolbar:false;"><?xml version="1.0" encodage="UTF-8"?> <pt:document xmlns:pt="http://schemas.brother.info/ptouch/2007/lbx/main" xmlns:barcode="http://schemas.brother.info/ptouch/2007/lbx/barcode" xmlns:style="http://schemas.brother.info/ptouch/2007/lbx/style" xmlns:text="http://schemas.brother.info/ptouch/2007/lbx/text"> <pt:body currentSheet="Folha 1"> <style:sheet name="Folha 1"> <pt:objets> <code-barres:code-barres> <barcode:qrcodeStyle model="2" eccLevel="15%" /> <pt:données>change1</pt:données> </code-barres:code-barres> <texte:texte> <text:textStyle vertical="false" /> <pt:données>change2</pt:données> <text:stringItem charLen="7"> <text:ptFontInfo> <text:logFont name="Arial" /> </text:ptFontInfo> </text:stringItem> </texte:texte> <texte:texte> <text:textStyle vertical="false" /> <pt:données>change3</pt:données> </texte:texte> </pt:objets> </style:feuille> </pt:corps> </pt:document></pre> <p>提前感谢所有花时间提供帮助的人</p>
P粉445714413P粉445714413433 Il y a quelques jours540

répondre à tous(2)je répondrai

  • P粉938936304

    P粉9389363042023-09-06 09:29:53

    Je pense que la structure XML doit être convertie en objets

    $xmlObject = new SimpleXMLElement($xmlString);

    Ensuite, vous pourrez accéder à la propriété.

    répondre
    0
  • P粉564301782

    P粉5643017822023-09-06 00:47:48

    Utilisez idéalement XPath pour extraire des données de XML. En procédant comme suit, vous obtiendrez les résultats souhaités :

    Chargement.php

    <?php
    $change1 = $_POST['change1'];
    $change2 = $_POST['change2'];
    $change3 = $_POST['change3'];   
    $xml = simplexml_load_file('your_complex_xml.xml');
    $xml->xpath('//pt:data')[0][0] = $change1;
    $xml->xpath('//pt:data')[1][0] = $change2;
    $xml->xpath('//pt:data')[2][0] = $change3;
    $xml->asXML('new_complex_xml.xml');

    form.php

        <form method="post" action="load.php">
        <label for="change1">change1:</label>
        <input type="text" name="change1" id="change1"><br>
        <label for="change2">change2:</label>
        <input type="text" name="change2" id="change2"><br>
        <label for="change3">change3:</label>
        <input type="text" name="change3" id="change3"><br>
        <input type="submit" value="Generate New XML">
        </form>

    répondre
    0
  • Annulerrépondre