我有这个xml文件
<?xml version="1.0" encoding="utf-8"?>
<Schedule xmlns="schedule" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schedule.xsd">
<Event>
<Title>Artificial Intelligence</Title>
<Lecture Classroom="A14">
<Day>Wednesday</Day>
<Time>09:00-11:00</Time>
</Lecture>
<Professor>Peter Parker</Professor>
</Event>
<Event>
<Title>Constraint Satisfaction Problems</Title>
<Lecture Classroom="E7">
<Day>Monday</Day>
<Time>19:00-21:00</Time>
</Lecture>
<Professor>David Peterson</Professor>
</Event>
<Event>
<Title>Knowledge Representation in Web</Title>
<Lecture Classroom="A3">
<Day>Friday</Day>
<Time>15:00-17:00</Time>
</Lecture>
<Professor>Dave Norton</Professor>
</Event>
<Event>
<Title>Artificial Intelligence</Title>
<Lecture Classroom="A2">
<Day>Monday</Day>
<Time>19:00-21:00</Time>
</Lecture>
<Professor>Michael Bay</Professor>
</Event>
</Schedule>
而且我想在上述xml的结尾中添加新的“事件”,就像这样
<Event>
<Title>Maths</Title>
<Lecture Classroom="B1">
<Day>Monday</Day>
<Time>19:00-20:00</Time>
</Lecture>
<Professor>Will Robes</Professor>
</Event>
到目前为止,我尝试过的代码创建成功的元素,但是将它们写入文件中的错误位置。这里是代码 https://pastebin.com/qUqaab3SB
在您的代码中,您只是找到第一个<Event>
标签并将信息添加到该标签中...
// find the Event tag
$root = $xmldoc->getElementsByTagName('Event')->item(0);
您需要做的是创建一个新的<Event>
标记,将所有信息添加到该标记,然后将此新事件添加到当前文档的末尾。因此,将以上行替换为...
// Create the Event tag
$root = $xmldoc->createElement("Event");
// Add it into the existing document
$xmldoc->documentElement->appendChild($root);