使用php dom在xml中插入多个数据
因为我不熟悉xml,所以我尝试将数据插入到xml中,这很有效。但我想在xml中插入多个数据。我将如何实现这一点?例如:使用php dom在xml中插入多个数据,php,xml,domdocument,Php,Xml,Domdocument,因为我不熟悉xml,所以我尝试将数据插入到xml中,这很有效。但我想在xml中插入多个数据。我将如何实现这一点?例如: <root> <no>1</no> <activity>swimming</activity> <date>29/7/2010</date> <others> <data1>data1</data1> <data2>data2</
<root>
<no>1</no>
<activity>swimming</activity>
<date>29/7/2010</date>
<others>
<data1>data1</data1>
<data2>data2</data2>
<data3>data3</data3>
so on..
</others>
<no>2</no>
<activity>sleeping</activity>
<date>29/7/2010</date>
<others>
<data1>data1</data1>
<data2>data2</data2>
<data3>data3</data3>
so on..
</others>
</root>
1.
游动
29/7/2010
数据1
数据2
数据3
等等。。
2.
睡觉
29/7/2010
数据1
数据2
数据3
等等。。
index.php:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$xmldoc = new DOMDocument();
$xmldoc->load('sample.xml', LIBXML_NOBLANKS);
$activities = $xmldoc->firstChild->firstChild;
if($activities != null){
while($activities != null){
?>
<div id="xml">
<span>
<?php echo $activities->textContent ?> </span> <br />
</div>
<?php
$activities = $activities->nextSibling;
}
}
?>
<body>
<form name="input" action="insert.php" method="post">
Insert Activity:
<input type="text" name="activity" />
<input type="submit" value="Send" />
</form>
</body>
</html>
load('sample.xml',LIBXML\u NOBLANKS);
$activities=$xmldoc->firstChild->firstChild;
如果($activities!=null){
while($activities!=null){
?>
插入活动:
insert.php:
<?php
header("Location: index.php");
$xmldoc = new DOMDocument();
$xmldoc->load('sample.xml');
$newAct = $_POST['activity'];
$root = $xmldoc->firstChild;
$newElement = $xmldoc->createElement('activity');
$root->appendChild($newElement);
$newText = $xmldoc->createTextNode($newAct);
$newElement->appendChild($newText);
$xmldoc->save('sample.xml');
?>
load('sample.xml');
$newAct=$_POST['activity'];
$root=$xmldoc->firstChild;
$newElement=$xmldoc->createElement('activity');
$root->appendChild($newElement);
$newText=$xmldoc->createTextNode($newAct);
$newElement->appendChild($newText);
$xmldoc->save('sample.xml');
?>
上面的代码只插入一个节点。我想知道如何插入多个节点和子节点如果您的意思是“如何在一个方法调用中同时插入多个节点”,答案是:这是不可能的 DOM的方法总是一样的:创建一个节点并将其附加到某个地方。一个接一个 在上面的示例中,您可以省去TextNode创建,将字符串内容作为第二个参数添加到
createNode
。但这不会使用自动转义和实体编码
批量创建的唯一方法是。这将以任意XML字符串作为输入。但这是非标准的。您的问题是什么,或者什么不起作用?请添加一些解释。上面的代码只插入一个节点。我想知道如何插入多个节点和子节点。