PHP DOMDocument: Fatal error: Call to undefined method DOMElement::save()
PHP DOMDocument: Fatal error: Call to undefined method DOMElement::save()
我正在尝试缩进我的 XML 文件,但我不能因为这个错误。
为什么会出现这个问题?
这是我的代码:
<?php
$xmlstr = 'xmlfile.xml';
$sxe = new SimpleXMLElement($xmlstr, null, true);
$lastID = (int)$sxe->xpath("//tip[last()]/tipID")[0] + 1;
$tip = $sxe->addChild('tip');
$tip->addChild('tipID', $lastID);
$tip->addChild('tiptitle', 'Title:');
$sxe->asXML($xmlstr);
$xmlDom = dom_import_simplexml($sxe);
$xmlDom->formatOutput = true;
$xmlDom->save($xmlstr);
?>
我做了很多研究,但找不到答案。
DOMElement 没有保存方法 xml,但是 DOMDocument 有。在之前创建 DOMDocument:
$xmlDom = dom_import_simplexml($sxe);
$dom = new DOMDocument();
$dom_sxe = $dom->importNode($xmlDom, true);
$dom_sxe = $dom->appendChild($xmlDom);
$Dom->formatOutput = true;
echo $dom->saveXML();
dom_import_simplexml
function returns an instance of DOMElement
, which has no save
method. What you need instead is a DOMDocument
确实有一个save
方法。
幸运的是,从一个到另一个真的很容易,因为 DOMElement
是 DOMNode
的一种类型,ownerDocument
property 也是如此。注意formatOutput
属性也是DOMDocument
的一部分,所以你需要的是:
$xmlDom = dom_import_simplexml($sxe)->ownerDocument;
$xmlDom->formatOutput = true;
$xmlDom->save($xmlstr);
我正在尝试缩进我的 XML 文件,但我不能因为这个错误。 为什么会出现这个问题?
这是我的代码:
<?php
$xmlstr = 'xmlfile.xml';
$sxe = new SimpleXMLElement($xmlstr, null, true);
$lastID = (int)$sxe->xpath("//tip[last()]/tipID")[0] + 1;
$tip = $sxe->addChild('tip');
$tip->addChild('tipID', $lastID);
$tip->addChild('tiptitle', 'Title:');
$sxe->asXML($xmlstr);
$xmlDom = dom_import_simplexml($sxe);
$xmlDom->formatOutput = true;
$xmlDom->save($xmlstr);
?>
我做了很多研究,但找不到答案。
DOMElement 没有保存方法 xml,但是 DOMDocument 有。在之前创建 DOMDocument:
$xmlDom = dom_import_simplexml($sxe);
$dom = new DOMDocument();
$dom_sxe = $dom->importNode($xmlDom, true);
$dom_sxe = $dom->appendChild($xmlDom);
$Dom->formatOutput = true;
echo $dom->saveXML();
dom_import_simplexml
function returns an instance of DOMElement
, which has no save
method. What you need instead is a DOMDocument
确实有一个save
方法。
幸运的是,从一个到另一个真的很容易,因为 DOMElement
是 DOMNode
的一种类型,ownerDocument
property 也是如此。注意formatOutput
属性也是DOMDocument
的一部分,所以你需要的是:
$xmlDom = dom_import_simplexml($sxe)->ownerDocument;
$xmlDom->formatOutput = true;
$xmlDom->save($xmlstr);