php xml DOMDocument 关闭标记元素

php xml DOMDocument close tag element

我正在使用 PHP DOMDocument() 生成包含元素的 XML 文件。

我将所有详细信息附加到示例 xml 文件中的组件标签中。但是结束标签不会来。我想创建结束标记。

我的代码就是这样做的

<component expiresOn="2022-12-31" id="pam" />

我想做如下

<component expiresOn="2022-12-31" id="pam"></component>

我的 PHP 代码示例

$dom = new DOMDocument();
$dom->load("Config.xml"); 
$components = $dom->getElementsByTagName('components')->item(0);

if(!empty($_POST["pam"])) {
    $pam = $_POST["pam"];
    $component = $dom->createElement('component');
    $component->setAttribute('expiresOn', $expirydate);
    $component->setAttribute('id', "pam");

    $components->appendChild($component5);
}

$dom->save("Config.xml");

我测试了以下建议,但它不起作用。 xml-php 代码都不同。

$dom->saveXml($dom,LIBXML_NOEMPTYTAG);

Self-closing tags using createElement

我测试了以下。

您正在尝试使用 DOMDocument::saveXML 将新的 XML 保存回原始文件,但该功能所做的只是 return 将 XML 作为细绳。由于您没有将结果分配给任何东西,因此什么也不会发生。

如果您想将 XML 保存回您的文件,以及避免自闭合标签,您需要像原来一样使用 save 方法,并且传递选项:

$dom->save('licenceConfig.xml', LIBXML_NOEMPTYTAG);

有关演示,请参阅 https://3v4l.org/e6N5s