Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:从PHP更新XML并保存_Php_Xml - Fatal编程技术网

PHP:从PHP更新XML并保存

PHP:从PHP更新XML并保存,php,xml,Php,Xml,我试图从php中更新预先存在的xml文件中的一个特定节点。我遇到的问题是,它似乎没有保存到xml文件中。不知道为什么,这里的任何帮助都将不胜感激 <?php $itemNumber = $_GET["itemNumberField"]; $xmlFile = "items.xml"; if(file_exists($xmlFile)) { // $doc = new DOMDocument('1.0'); // $doc->l

我试图从php中更新预先存在的xml文件中的一个特定节点。我遇到的问题是,它似乎没有保存到xml文件中。不知道为什么,这里的任何帮助都将不胜感激

<?php       
$itemNumber = $_GET["itemNumberField"];

$xmlFile = "items.xml";

if(file_exists($xmlFile))
{           

    // $doc = new DOMDocument('1.0');
    // $doc->load($xmlFile);

    $doc = DOMDocument::load($xmlFile); 

    $item = $doc->getElementsByTagName("item");

    foreach($item as $node) 
    {   
        $itemNumberNode = $node->getElementsByTagName("itemNumber");
        $itemNumberNode = $itemNumberNode->item(0)->nodeValue;

        $qtyNode = $node->getElementsByTagName("quantity");
        $qtyNode = $qtyNode->item(0)->nodeValue;                

        if ($itemNumberNode == $itemNumber)
        {
            $qtyNode++;

            echo $qtyNode;                  
        }
    }        
} 

else 
{       
    echo "file doesn't exist! <br/>";       
}

$doc->save($xmlFile);

?>

Chmod要保存xml文件的文件夹:将权限设置为maximaly 775


如果不起作用,请尝试使用Curl

Chmod保存xml文件的文件夹:将权限设置为Maxiamaly 775


如果这不起作用,请尝试使用Curl,我刚刚编写了类似的代码,发现$doc->saveXML()只是构建了传出的xml字符串。我添加了一个文件,用于将内容写入xml文件,效果很好

file_put_contents($xmlFile, $doc->saveXML());
文件内容($xmlFile,$doc->saveXML()) 我刚刚编写了类似的代码,发现$doc->saveXML()只是构建了传出的xml字符串。我添加了一个文件,用于将内容写入xml文件,效果很好

file_put_contents($xmlFile, $doc->saveXML()); 文件内容($xmlFile,$doc->saveXML()) 将标量值(字符串)复制到变量中。然后更改变量

    $qtyNode = $qtyNode->item(0)->nodeValue;                

    if ($itemNumberNode == $itemNumber)
    {
        $qtyNode++;

        echo $qtyNode;                  
    } 
$qtyNode
不是
DOMNode
对象,而是字符串变量

您必须直接更改DOMNode::$nodeValue属性或将变量分配给它

    $qtyNode = $qtyNode->item(0);                

    if ($itemNumberNode == $itemNumber)
    {
        $qtyNode->nodeValue++;

        echo $qtyNode->nodeValue;                  
    } 
将标量值(字符串)复制到变量中。然后更改变量

    $qtyNode = $qtyNode->item(0)->nodeValue;                

    if ($itemNumberNode == $itemNumber)
    {
        $qtyNode++;

        echo $qtyNode;                  
    } 
$qtyNode
不是
DOMNode
对象,而是字符串变量

您必须直接更改DOMNode::$nodeValue属性或将变量分配给它

    $qtyNode = $qtyNode->item(0);                

    if ($itemNumberNode == $itemNumber)
    {
        $qtyNode->nodeValue++;

        echo $qtyNode->nodeValue;                  
    } 

您要将文件保存到哪里?本地还是远程?@bboni它位于远程服务器上。您要将文件保存在哪里?本地还是远程?@bboni它在远程服务器上。