簡體   English   中英

致命錯誤:未捕獲的DOMException:無效字符錯誤

[英]Fatal error: Uncaught DOMException: Invalid Character Error

我有一個關於無效字符錯誤的問題,我不理解這種錯誤。 我有一個表單,通過它我將在名為“ phonebook.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>

問題是我在個人信息之間不應該有空格,而應該是:PersonalInformation。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM