Мне интересно, как вернуть значение empy в мой «атрибут», если конечный пользователь не заполнил поле формы под названием «имя» и оставил его пустым.
Мой фактический код:
$domElement = $domDocument->createElement('attribute', $posted_data['name']);
$domAttribute = $domDocument->createAttribute('domainname');
$domAttribute->value = 'Name';
$domElement->appendChild($domAttribute);
Желаемый результат при пустом вводе в поле формы "имя":
<attribute domainname = "Name"></attribute>
Текущий выход на основе фактического кода:
<attribute domainname = "Name"/>
Как видите, он дорабатывается не </attribute>, а просто />.
Есть подсказка?
@ WebCode.ie Итак, технически говоря, будет ли нормально работать при импорте файла .xml?
@Wager - Да, должно быть.
@ WebCode.ie благодарим вас за это.
Часто называется самозакрывающийся тег, если вам интересно ...






Вы можете использовать const LIBXML_NOEMPTYTAG
<?php
$domDocument = new DOMDocument;
$domElement = $domDocument->createElement('attribute');
$domAttribute = $domDocument->createAttribute('domainname');
$domAttribute->value = 'Name';
$domElement->appendChild($domAttribute);
echo $domDocument->saveXML($domElement, LIBXML_NOEMPTYTAG), PHP_EOL;
http://php.net/manual/en/libxml.constants.php#constant.libxml-noemptytag
Я использовал метод $content = chunk_split(base64_encode($domDocument->saveXML($domElement, LIBXML_NOEMPTYTAG)));, но он все тот же
Также не работал echo $domDocument->saveXML($domElement, LIBXML_NOEMPTYTAG);.
Я обновил свой ответ полным примером. Как видите, он работает
Для меня это все еще не работает, потому что я зависим от ввода ('attribute', $posted_data['name']) пользователя. Я не могу просто удалить $ posted_data в соответствии с вашим примером.
Хотя эти два примера не идентичны визуально, они идентичны технически.