PHP 生成 XML 空元素简写的问题

本文介绍如何在PHP中使用DOMDocument将XML空元素从<test/>格式转换为<test></test>格式。通过传递LIBXML_NOEMPTYTAG常量到saveXML()方法实现这一变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你生成一个XML的时候,如果标签内为空的情况下也就是说是空元素的时候会返回<test />,如何转换成 <test> </test> 呢?

在XML中,它们被认为是完全相同的东西,任何解析器都应该识别这两种形式。但是,有时候就是需要这样格式的情况下能够通过将 LIBXML_NOEMPTYTAG 常量传递到 DOMdocumentsaveXML() 方法来更改它。

如何在节点内容为空时显示两个标记???

<?php
$dom     = new \DOMDocument('1.0');
$document = $dom->createElement('document');
$document = $dom->appendChild($document);
$head = $dom->createElement('title','this is title');
$content = $dom->createElement('content','');
$document->appendChild($head);
$document->appendChild($content);
echo $dom->saveXML();
?>

在XML中,它们被认为是完全相同的东西,任何解析器都应该识别这两种形式。但是,如果仍然需要,可以这样写

<?php
echo $dom->saveXML($dom->documentElement, LIBXML_NOEMPTYTAG);
?>
输出1:
<?xml version="1.0"?>
<document>
    <title>this is title</title>
    <content/>
</document>

输出2:
<document>
    <title>this is test</title>
    <content></content>
</document>

使用示例:
DOMDocument::saveXML

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值