我正在尝试将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>
标记内?