Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 XML_Php_Xml - Fatal编程技术网

仅输出特定节点的PHP XML

仅输出特定节点的PHP XML,php,xml,Php,Xml,我试图保存一个特定的节点,而不是完整的xml文件,但我得到了错误 可捕获的致命错误:传递给DOMDocument::saveXML()的参数1必须是DOMNode的实例,DOMNodeList的实例在第31行的php\corrdination.php中给出 我遵循doom文档,但由于我不创建新元素,只从已经创建的xml文件中读取,因此无法创建新元素 我的第31行是 $resultX = $xpath->query('/stickers/sticker[id="200"]/position/

我试图保存一个特定的节点,而不是完整的xml文件,但我得到了错误

可捕获的致命错误:传递给DOMDocument::saveXML()的参数1必须是DOMNode的实例,DOMNodeList的实例在第31行的php\corrdination.php中给出

我遵循doom文档,但由于我不创建新元素,只从已经创建的xml文件中读取,因此无法创建新元素

我的第31行是

$resultX = $xpath->query('/stickers/sticker[id="200"]/position/x'); 
当我试图只保存已更改的节点时,我会写入

echo $xml->saveXML($resultX);
有什么建议吗? 这是我的整个php文件

    $xml = new DOMDocument();
    $xml->formatOutput = TRUE;
    $xml->preserveWhiteSpace = FALSE; 
    $xml->load('../stickers.xml');

    $xpath = new DOMXPath($xml);
    $resultX = $xpath->query('/stickers/sticker[id="200"]/position/x'); 
    $resultX->item(0)->nodeValue = "150"; 
echo $xml->saveXML($resultX);
如果我只
echo$xml->saveXML()
查询可以工作,但正如我所说,它保存了整个节点结构

XML文件:

<stickers>
  <sticker>
    <position>
      <x>0</x>
    </position>
    <text>Hello world </text>
    <id>200</id>
  </sticker>
 </stickers>

0
你好,世界
200

谢谢

错误提示您必须将
DOMNode
传递到
DOMDocument::saveXML()
。因此,您需要更改这一行:

echo $xml->saveXML($resultX);
为此:

echo $xml->saveXML($resultX->item(0));

错误表示必须将
DOMNode
传递到
DOMDocument::saveXML()
。因此,也许您需要将
saveXML($resultX)
更改为
saveXML($resultX->item(0))
?这样做了,您应该把它作为答案写下来,这样我就可以接受了:)谢谢您,我的朋友