如何从数组创建多级XML文件?

时间:2017-09-07 06:39:46

标签: php arrays xml tree

我有一个数组

$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.我在哪里错了?

1 个答案:

答案 0 :(得分:1)

希望这个会有所帮助。

  

问题: $errorgroup=$doc->createElement($erreur);我不是你想用这条线做的。

更改此内容:

$errorgroup=$doc->createElement($erreur);

对此:

$errorgroup=$missinggroup;

Try this code snippet here

<?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>