DOM XML创建新元素而不是追加

时间:2013-12-11 20:37:20

标签: php xml dom

我正在尝试创建一个简单的应用程序,将用户的输入保存到xml文档,因为这是非常临时的(并且是学习的东西)。起初它是为“应用程序”创建一个新元素,当我希望它附加到该元素时所以我对它进行了评论并尝试获取元素标记。

<?php
echo $_GET['position'];
echo $_GET['name'];
echo $_GET['email'];
echo $_GET['minecraft-name'];
echo $_GET['age'];
echo $_GET['message'];


$doc = new DOMDocument();
$doc->load('dump.xml');
$doc->formatOutput = true;

$r = $doc->getElementsByTagName( "applications" );
//$r = $doc->createElement("applications");
//$doc->appendChild($r);

$s = $doc->createElement($_GET['position']);

$name = $doc->createElement("name");
$name->appendChild(
  $doc->createTextNode($_GET['name'])
);
$s->appendChild($name);

$email = $doc->createElement("email");
$email->appendChild(
  $doc->createTextNode($_GET['email'])
);
$s->appendChild($email);

$mcname = $doc->createElement("minecraft-name");
$mcname->appendChild(
  $doc->createTextNode($_GET['minecraft-name'])
);
$s->appendChild($mcname);

$age = $doc->createElement("age");
$age->appendChild(
  $doc->createTextNode($_GET['age'])
);
$s->appendChild($age);

$message = $doc->createElement("message");
$message->appendChild(
  $doc->createTextNode($_GET['message'])
);
$s->appendChild($message);

$r->appendChild($s);


echo $doc->save("dump.xml");

打印错误“调用未定义的方法DOMNodeList :: appendChild()”。

1 个答案:

答案 0 :(得分:0)

我认为不是

$r = $doc->getElementsByTagName( "applications" );

你想要

$r = $doc->getElementsByTagName( "applications" )->item(0);