首頁  >  問答  >  主體

使用 PHP 表單中的資料更新 xml 命名空間

<p>在下面的範例中,PHP 表單使用欄位中輸入的文字更新 XML。</p> <p>XML檔labela.xml:</p>

<發明家>
   <人>
      <姓名>change1
      <評論>更改2
   </人>
</發明家></pre>
<p>用於更改 XML 檔案中的「change1」和「change2」的 PHP 表單formatOutput = true;
 $xml->preserveWhiteSpace = false;
 $xml->load(“labela.xml”);

 //取得item元素
 $element = $xml->getElementsByTagName("person")->item(0);

 //載入子元素
 $name = $element->getElementsByTagName("name")->item(0);
 $comment = $element->getElementsByTagName("comment")->item(0);

 //用新元素取代舊元素
 $element->replaceChild($name, $name);
 $element->replaceChild($comment, $comment);
 ?>

nodeValue = $_POST[“namanya”];
    $comment->nodeValue = $_POST[“commentnya”];
    htmlentities($xml->save(“labela.xml”));
} ?>

<表單方法=“POST”行動=''>
名稱 <輸入類型=“文字名稱” value="nodeValue; ?>” name=“namanya” >>
comment <輸入類型=“文字評論” value="nodeValue; ?>” name=“commentnya”/>
<輸入名稱=“提交”類型=“提交” >>
</form></pre>

如何使用PHP從下面的XML結構中提取並更新字串change1和change2?</p>



   <pt:body currentSheet=“Folha 1”>
      <樣式:工作表名稱=“Folha 1”>
         
            <條碼:條碼>
               <條碼:qrcodeStyle model=“2” eccLevel=“15%” >>
               change1
            </條碼:條碼>
            <文字:文字>
               >
               change2
               
                  <文字:ptFontInfo>
                     >
                  </text:ptFontInfo>
               </text:stringItem>
            </文字:文字>
            <文字:文字>
               >
               change3
            </文字:文字>
         </pt:物件>
      </樣式:表>
   </pt:正文>
</pt:文檔></pre>
<p>提前感謝所有花時間提供幫助的人</p>
P粉445714413P粉445714413433 天前538

全部回覆(2)我來回復

  • P粉938936304

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

    我認為需要將XML結構轉換為物件

    $xmlObject = new SimpleXMLElement($xmlString);

    然後您就可以存取該屬性。

    回覆
    0
  • P粉564301782

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

    理想的情況是使用 XPath 從 XML 中提取資料。 透過執行以下操作,您將獲得您想要的結果:

    載入.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');

    表單.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>

    回覆
    0
  • 取消回覆