如何在XML中插入当前日期 - PHP?

时间:2018-04-06 10:45:19

标签: php xml

我正在尝试在我的XML的每个记录中插入当前日期而不键入日期只是从函数中取出并插入记录但没有成功。

我的任务是制作带有“作者”和“标题”的表单,如果你用XML标题写现有作者 - 只更改当前记录的日期фтв不要创建新记录。

但首先我需要以某种方式得到这个当前日期。 所以我尝试了这种方式:

if(isset($_GET['insert']))
{

  $xml = new DomDocument("1.0","UTF-8");
  $xml -> load('book.xml');

  $date = date('Y m d'); //  get date


  $b_author = $_GET['author'];
  $b_title=$_GET['title'];


  $rootTag = $xml->getElementsByTagname('root')->item(0);

  $bookTag = $xml->createElement("book"); 
  $authorTag = $xml->createElement("author",$b_author);
  $titleTag = $xml->createElement("title",$b_title);

  $dateTag = $xml->createElement($date); // create element date


  $bookTag->appendChild($authorTag);
  $bookTag->appendChild($titleTag);
  $bookTag->appendChild($dateTag); // append date

  $rootTag->appendChild($bookTag);
  $xml->save('book.xml');

}

所以在浏览器中我有这个错误:

> Fatal error: Uncaught DOMException: Invalid Character Error in
> C:\xampp\htdocs\project\Parse XML\insert_inXML.php:26 Stack trace: #0
> C:\xampp\htdocs\project\Parse XML\insert_inXML.php(26):
> DOMDocument->createElement('2018 04 06') #1 {main} thrown in
> C:\xampp\htdocs\project\Parse XML\insert_inXML.php on line 26

1 个答案:

答案 0 :(得分:0)

您尝试添加

之类的元素
<2018 04 06></2018 04 06>

空白是问题所在。

我想你想要像

这样的东西
<date>2018 04 06</date>

要像上面那样使用DomDocument::createElement()

$dateTag = $xml->createElement('date', $date);