У меня есть эта проблема, из-за недопустимой символьной ошибки, и я не понимаю такого рода ошибки. У меня есть форма, и через нее я собираюсь вставить некоторую информацию в документ XML под названием «phonebook.xml».
<?phpif(isset($_POST['submit'])){
$fn=$_POST['f1'];
$lm=$_POST['l1'];
$nt=$_POST['nr'];$xml=new DomDocument("1.0","UTF-8");
$xml->load("phonebook.xml");
$rootTag=$xml->getElementsByTagname("root")->item(0);
$infoTag=$xml->createElement("Personal Information");
$fnameTag=$xml->createElement("First Name",$fn);
$lnameTag=$xml->createElement("Last Name",$lm);
$ntTag=$xml->createElement("Number Type",$nt);$infoTag->appendChild($fnameTag);
$infoTag->appendChild($lnameTag);
$infoTag->appendChild($ntTag);
$rootTag->appendChild($infoTag);
$xml->save("phonebook.xml");}
?>
Проблема в том, что у меня не должно быть пробела между личной информацией, но должно быть: PersonalInformation.
Имена элементов имеют узлы, в которых могут быть пробелы, поэтому Personal Information
неверное имя тега Вы можете заменить / удалить пространство.
Кроме того, второй аргумент DOMDocument :: createElement () имеет аварийный выход. Самый простой способ — создавать и добавлять контент в виде текстовых узлов.
$document = new DOMDocument("1.0","UTF-8");
$document->appendChild($document->createElement('root'));
$rootTag = $document->documentElement;
$infoTag = $rootTag->appendChild(
$document->createElement("PersonalInformation")
);
$infoTag
->appendChild($document->createElement("FirstName"))
->appendChild($document->createTextNode("John"));
$document->formatOutput = TRUE;
echo $document->saveXML();
Выход:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<PersonalInformation>
<FirstName>John</FirstName>
</PersonalInformation>
</root>