致命错误:未捕获的 DOMException:无效字符错误



我有这个问题,关于无效的字符错误,我不理解这种错误。我有一个表格,通过它,我将在名为"电话簿.xml"的xml文档中插入一些信息。

<?php

if(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");

}
?>
元素

名称中不允许有空格,因此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>

问题是我不应该在个人信息之间留出空格,而应该是:P ersonalInformation。

最新更新