Самозакрывающиеся теги с использованием createElement

Мне нужно добавить самозакрывающийся тег в XML-файл с DOM в PHP, но я не знаю, как это сделать, потому что стандартно этот тег выглядит следующим образом:

<tag></tag> 

Но это должно выглядеть так:

 <tag/> 

DOM автоматически сделает это за вас

 $dom = new DOMDocument; $dom->appendChild($dom->createElement('foo')); echo $dom->saveXml(); 

будет давать по умолчанию

 <?xml version="1.0"?> <foo/> 

если вы не делаете

 $dom = new DOMDocument; $dom->appendChild($dom->createElement('foo')); echo $dom->saveXml($dom, LIBXML_NOEMPTYTAG); 

которое затем дало бы

 <?xml version="1.0" encoding="UTF-8"?> <foo></foo> 

Просто передайте параметр node в DOMDocument::saveXML , чтобы выводить только определенный узел без объявления XML:

 $doc = new \DOMDocument('1.0', 'UTF-8'); $doc->preserveWhiteSpace = false; $doc->formatOutput = false; $node = $doc->createElement('foo'); // Trimming the default carriage return char from output echo trim($doc->saveXML($node)); 

дам

 <foo/> 

не содержащий никакой новой строки / символа возврата каретки.