1

我得到了 Xml 文件

<root>
<firstchild id="1">
<page name="main">
</page>
</firstchild>
</root>

我想在 php 中为 firstchild id="1" 添加页面。我该如何添加?

$xml='<page name="second"></page>';
    $doc = new DOMDocument();
    $doc->load($filename);
    $fragment = $doc->createDocumentFragment();
    $fragment->appendXML($xml);
    $doc->documentElement->appendChild($fragment);
    $doc->save($filename);

没有任何方法appendXml吗?我可以像这样添加它

 `<page name="second">
<inlude file="1.png"></inlude>
<inlude file="2.png"></inlude>
</page>`

我需要最短的附加方法

4

2 回答 2

1

使用addChildaddAttribute

$xml = simplexml_load_string($data);
$page = $xml->firstchild->addChild("page");
$page->addAttribute("name", "Page name");
echo $xml->saveXML();

演示: http ://codepad.org/u78S8rFK

于 2013-08-01T14:10:21.920 回答
1

由于您使用的是 DOMDocument,这就是您所需要的:

$doc = new DOMDocument();
$doc->load($filename);
$firstchild = $doc->getElementsByTagName('firstchild')->item(0);
$newPage = $doc->createDocumentFragment();
$newPage->appendXML('<page name="second">
<inlude file="1.png"></inlude>
<inlude file="2.png"></inlude>
</page>');
$firstchild->appendChild($newPage);
$doc->save(filename);
于 2013-08-01T14:24:56.710 回答