使用 createElement 的自闭合标签

发布于 2024-12-06 10:38:25 字数 181 浏览 0 评论 0原文

我需要在 PHP 中使用 DOM 在 XML 文件中添加一个自关闭标签,但我不知道如何操作,因为标准情况下,这个标签看起来像这样:

<tag></tag>

但它应该看起来像这样:

<tag/>

I need to add a self-closing tag to XML file with DOM in PHP, but I don't know how, because standardly, this tag looks like this:

<tag></tag>

But it should look like this:

<tag/>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

违心° 2024-12-13 10:38:25

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>

DOM will do that automatically for you

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

will give by default

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

unless you do

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

which would then give

<?xml version="1.0" encoding="UTF-8"?>
<foo></foo>
得不到的就毁灭 2024-12-13 10:38:25

只需将 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/>

包含任何换行符/回车符结尾字符。

Just pass a node param to DOMDocument::saveXML in order to output only a specific node, without any XML declaration:

$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)); 

will give

<foo/>

not containing any new line / carriage return ending char.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文