【问题标题】:How to update xml file using PHP?如何使用 PHP 更新 xml 文件?
【发布时间】:2014-05-31 02:11:19
【问题描述】:

我有这样的 xml 文件 --> examples.xml

<?xml version="1.0" encoding="UTF-8"?>
<inventors>
 <person>
 <name>anie</name>
 <comment>good</comment>
 </person>
</inventors>

这是我的 php 文件 --> index.php

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<?php
 $xml = new DOMDocument('1.0', 'utf-8');
 $xml->formatOutput = true;
 $xml->preserveWhiteSpace = false;
 $xml->load('examples.xml');

 //Get item Element
 $element = $xml->getElementsByTagName('person')->item(0);

 //Load child elements
 $name = $element->getElementsByTagName('name')->item(0);
 $comment = $element->getElementsByTagName('comment')->item(0);

 //Replace old elements with new
 $element->replaceChild($name, $name);
 $element->replaceChild($comment, $comment);
 ?>

 <form method="POST" action=''>
  name <input type="text-name" value="<?php echo $name->nodeValue  ?>" name="namanya" />
comment  <input type="text-comment" value="<?php echo $comment->nodeValue  ?>"  name="commentnya"/>
 <input name="submit" type="submit" />
 </form>

 <?php


 if (isset($_POST['submit'])) 
 { 
$name->nodeValue = $_POST['namanya'];
$comment->nodeValue = $_POST['commentnya'];
htmlentities($xml->save('examples.xml'));

 }


 ?>

如果我单击按钮提交,它将无法工作,在浏览器视图中有 2 个结果输入。 如果我点击按钮提交,我希望结果是新的输入。

【问题讨论】:

    标签: php xml refresh


    【解决方案1】:

    您的程序首先显示表单,然后保存数据。 因此,当您单击按钮提交时,程序会先显示带有先前数据的表单,然后, 保存“新”数据。

    因此下面的代码运行良好。

     <script src="http://code.jquery.com/jquery-latest.min.js"></script>
     <?php
     $xml = new DOMDocument('1.0', 'utf-8');
     $xml->formatOutput = true; 
     $xml->preserveWhiteSpace = false;
     $xml->load('examples.xml');
    
     //Get item Element
     $element = $xml->getElementsByTagName('person')->item(0);  
    
     //Load child elements
     $name = $element->getElementsByTagName('name')->item(0);
     $comment = $element->getElementsByTagName('comment')->item(0) ;
    
     //Replace old elements with new
     $element->replaceChild($name, $name);
     $element->replaceChild($comment, $comment);
     ?>
    
     <?php
     if (isset($_POST['submit']))
     {
    $name->nodeValue = $_POST['namanya'];
    $comment->nodeValue = $_POST['commentnya'];
    htmlentities($xml->save('examples.xml'));
    
     }
    
     ?>
    
     <form method="POST" action=''>
      name <input type="text-name" value="<?php echo $name->nodeValue  ?>" name="namanya" />
    comment  <input type="text-comment" value="<?php echo $comment->nodeValue  ?>"  name="commentnya"/>
     <input name="submit" type="submit" />
     </form>
    

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2015-02-04
      • 2021-11-07
      相关资源
      最近更新 更多