我有一个数组
$arr=array("A","B","C");
我想从
创建一个多级XML<root>
<error>
<A>
<B>
<C>
<D/>
</C>
</B>
</A>
</error>
</root>
我已将代码编写为
$arr = array("A", "B", "C", "D");
$doc = new DomDocument();
$doc->formatOutput=true;
$doc->LoadXML('<root/>');
$root = $doc->documentElement;
$errorgroup = $doc->createElement('error');
$root->appendChild($errorgroup);
foreach($arr as $erreur) {
$missinggroup = $doc->createElement($erreur);
$errorgroup->appendChild($missinggroup);
$errorgroup=$doc->createElement($erreur);
}
echo $doc->saveXml();
但是输出只在XML里面显示<A/>
错误而不是其余的B和C.我在哪里错了?
答案 0 :(得分:1)
希望这个会有所帮助。
问题:
$errorgroup=$doc->createElement($erreur);
我不是你想用这条线做的。
更改此内容:
$errorgroup=$doc->createElement($erreur);
对此:
$errorgroup=$missinggroup;
<?php
ini_set('display_errors', 1);
$arr = array("A", "B", "C", "D");
$doc = new DomDocument();
$doc->formatOutput=true;
$doc->LoadXML('<root/>');
$root = $doc->documentElement;
$errorgroup = $doc->createElement('error');
$root->appendChild($errorgroup);
foreach($arr as $erreur) {
$missinggroup = $doc->createElement($erreur);
$errorgroup->appendChild($missinggroup);
$errorgroup=$missinggroup;
}
echo $doc->saveXml();
<强>输出:强>
<root>
<error>
<A>
<B>
<C>
<D/>
</C>
</B>
</A>
</error>
</root>