在保持格式php的同时将XML导入现有文档

时间:2016-02-29 20:51:28

标签: php xml import export

我正在尝试将HTML表单中的XML数据导入到预先存在的xml文档中。数据将被导入,但所有格式都将丢失,并将其导入一行。

$xml = new DOMDocument();
if (file_exists("{$filename}.xml")) {
  $xml -> load("{$filename}.xml");
}

$data = $xml -> getElementsByTagName("data")->item(0);

$match = $xml -> createElement("match");  
$data -> appendChild($match);

$xml -> formatOutput = true;
$data -> formatOutput = true;

$xml->save("{$filename}.xml");

我要导入的所有数据都在$match之内。我想要合并它的数据如下所示:

<?xml version="1.0"?>
<data>
  <match>
    <pregame>
      <userName>Jack</userName>
      <teamNumber>4043</teamNumber>
      <matchNumber>12</matchNumber>
      <tablet>1</tablet>
    </pregame>
    <autonomous>
      <autoScore>20</autoScore>
      <autoSpy>0</autoSpy>
    </autonomous>
    <duringMatch>
      <defensive>0</defensive>
      <lowBar>0</lowBar>
      <portcullis>0</portcullis>
      <teeterTotter>2</teeterTotter>
      <moat>1</moat>
      <ramparts>0</ramparts>
      <drawbridge>1</drawbridge>
      <sallyPort>0</sallyPort>
      <rockWall>2</rockWall>
      <roughTerrain>0</roughTerrain>
      <lowGoals>10</lowGoals>
      <highGoals>1</highGoals>
    </duringMatch>
    <postGame>
      <canChallenge>1</canChallenge>
      <canScale>0</canScale>
      <allianceScore>143</allianceScore>
      <fouls>0</fouls>
      <techFouls>0</techFouls>
      <notes>Awesome!</notes>
    </postGame>
  </match>
</data>

有没有办法在<data>代码之间和</match>代码之后导入它并仍保留格式?

编辑:经过一些测试,我发现如果文档中没有现有标签,则文档格式正常。看来,当我从文档中加载<data>标记时,它会破坏格式化$xml文档的能力。是否有另一种方法可以保留格式,同时仍然将数据附加到现有文档的<data>标记内?

0 个答案:

没有答案