PHP-编辑包含字符串的XML文件
我想更改XML文件中的一行,该行包含通过POST获得的代码 我正在寻找一种方法来查找XML文件目录中包含代码的文件,然后更改行 有人能帮我吗 我的PHP代码:PHP-编辑包含字符串的XML文件,php,xpath,simplexml,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
$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>
*/
$files=scandir('xml/);//列出文件
foreach($files作为$file){
如果($file=='。| |$file=='..)继续;
$xml=simplexml\u load\u文件(“xml/”$file);
$result=$xml->xpath(“pedido”);
如果($result[3]->numpedido==$dilma){
回声“它存在!”;
}
}
/*我的XML看起来像这样
若昂
34
13:01:10
6780110
拜奥,弗兰戈,波尔科,马卡西拉
阿伯托
*/
编辑:我得到的错误是:
注意:第43行的/var/www/html/restaurant/cmae/rita.php中未定义的偏移量:3
注意:试图在第43行的/var/www/html/restaurant/cmae/rita.php中获取非对象的属性代码>不会返回任何结果。你需要 将xpath更改为
$result=$xml->xpath(“/pedido”)代码>。这样,您将拥有一个包含简单XML元素的数组(结果的处理需要不同)
你能帮我处理结果吗?我试图使用一个foreach($xml->children()as$child){…}
但它不起作用,然后我尝试使用$result[5]->status=$temer代码>($temer也从POST收到),但它也不起作用。:/[编辑:我需要更改XML上的行]如果您将使用我提供的示例并稍微更改echo'exists';至$result[0]->status='statusToChange'
然后您已经更改了对象$xml中的xml(因为引用)。接下来的步骤是保存文件内容(“xml/”$file,$xml->asXML())<代码>$result=$xml->xpath(“/pedido”)
将分配一个数组,该数组包含与$xml
变量相同的节点(或不包含任何内容)。基本上,$result[0]->numpedido
和$xml->numpedido
是相同的。不需要Xpath。如果pedido
不是根节点,则情况会有所不同。您认为$result[3]
是什么?我想$result[3]
可能是数组$result[]
的第四行,其中包含
的子节点
if (isset($result[0]) && isset($result[0]->numpedido) && $result[0]->numpedido == $dilma) {
echo 'exists';
}