仅输出特定节点的PHP XML
我试图保存一个特定的节点,而不是完整的xml文件,但我得到了错误 可捕获的致命错误:传递给DOMDocument::saveXML()的参数1必须是DOMNode的实例,DOMNodeList的实例在第31行的php\corrdination.php中给出 我遵循doom文档,但由于我不创建新元素,只从已经创建的xml文件中读取,因此无法创建新元素 我的第31行是仅输出特定节点的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/
$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))
?这样做了,您应该把它作为答案写下来,这样我就可以接受了:)谢谢您,我的朋友