我有这个简单的xml
文件:
<iPhone>
<anEvent>
<data1>some Data</data1>
<data2>Some data here </data2>
</anEvent>
<anEvent>
<data1>some Data</data1>
<data2>Some data here </data2>
</anEvent>
</iPhone>
我需要从此文件中删除它并将其写入另一个文件。
要获得我想要的<anEvent>
,我这样做(我只想转移一个anEvent):
$dom = new DomDocument();
$dom->load('myFile.xml');
$myData = $dom->getElementsByTagName('anEvent')->item(0);
我在索引0得到它很酷。 为了删除它,我只需使用:
$customRequete->parentNode->removeChild($myData);
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->saveXML();
$dom->save("myFile.xml");
它有效,这很酷。
问题是当我想将<anEvent>
写入另一个文件时。
我知道如何写入XML但不使用DOM DOCUMENT:
$myNewFile = simplexml_load_file("myNewFile.xml");
$event = $myNewFile->addChild('anEvent');
$data1 = $event->addChild('data1','someData');
$data2 = $event->addChild('data2','some data here');
我想知道是否可以使用$myData
中的$dom
来编写类似的内容:
$myNewFile -> addChild($myData);
$myNewFile->save();
或者我是否需要循环到$myData
以获取节点值?
答案 0 :(得分:0)
如果您只需要复制文件,可以使用PHP的copy()函数。
答案 1 :(得分:0)
如果要将节点从文档移动到另一个文档,则必须使用新创建的DOMDocument
上的importNode
方法导入它们。后一个参数允许您递归导入每个节点子节点。
答案 2 :(得分:0)
结帐DOMDocument::importNode。该页面上的示例应该是您所需要的。