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



我正在尝试在我的 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:xampphtdocsprojectParse XMLinsert_inXML.php:26 Stack trace: #0
> C:xampphtdocsprojectParse XMLinsert_inXML.php(26):
> DOMDocument->createElement('2018 04 06') #1 {main} thrown in
> C:xampphtdocsprojectParse XMLinsert_inXML.php on line 26

你尝试添加一个元素,如

<2018 04 06></2018 04 06>

空格是问题所在。

我猜你想要这样的东西

<date>2018 04 06</date>

要到达那里,请使用DomDocument::createElement()就像您上面所做的那样:

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

最新更新