PHP - 编辑包含字符串的XML文件

时间:2018-05-25 19:01:39

标签: php xpath simplexml

我想在XML文件中更改一行,其中包含通过POST获得的代码。

我正在寻找一种在XML文件上查找文件的方法。包含代码的目录,然后更改该行。

有人可以帮助我吗?

我的PHP代码:

$files = scandir('xml/.'); // List files
foreach($files as $file) { 
  if($file == '.' || $file == '..') continue; 
  $xml = simplexml_load_file("xml/".$file);
  $result = $xml->xpath("pedido"); 
  if($result[3]->numpedido == $dilma) {
   echo "It exists!";
  }
}

/* My XML Looks like this
<pedido>
  <cliente>João</cliente>
  <mesa>34</mesa>
  <hora>13:01:10</hora>
  <numpedido>6780110</numpedido>
  <lista>Baiao, Frango, Porco, e Macaxeira</lista>
  <status>Aberto</status>
</pedido>
*/

编辑:我得到的错误是:

注意:未定义的偏移量:第43行/var/www/html/restaurante/cmae/rita.php中的3

注意:尝试在第43行的/var/www/html/restaurante/cmae/rita.php中获取非对象的属性

1 个答案:

答案 0 :(得分:-1)

$result = $xml->xpath("pedido");不会返回任何结果。你需要 将您的xpath更改为$result = $xml->xpath("/pedido");。这样你将拥有一个包含简单XML元素的数组(结果的处理需要不同)。

if (isset($result[0]) && isset($result[0]->numpedido) && $result[0]->numpedido == $dilma) {
    echo 'exists';
}