我正在尝试将数据附加到下面 XML 中特定位置的末尾。
我的 XML 更长,但例如,我想将数据附加到标有“删除”的部分的末尾。然后我会在“总票数”的末尾添加不同的数据,但如果我能以某种方式弄清楚如何将数据附加到第一个孩子的末尾,我就能弄清楚其余的。
<report>
<sets>
<set>
<legend>Delete</legend>
<values>
<value date="2012-06-24" data="9"/>
<value date="2012-06-25" data="17"/>
<value date="2012-06-26" data="15"/>
<value date="2012-06-27" data="10"/>
<value date="2012-06-28" data="8"/>
</values>
</set>
<set>
<legend>Total Tickets</legend>
<values>
<value date="2012-06-24" data="412"/>
<value date="2012-06-25" data="416"/>
<value date="2012-06-26" data="423"/>
<value date="2012-06-27" data="405"/>
<value date="2012-06-28" data="280"/>
</values>
</set>
</sets>
</report>
下面是我为查看结果而编写的测试脚本。在这种情况下,我试图在图例“删除”列表的末尾附加元素“值”和“12345”的属性数据
<?php
$doc = new DOMDocument;
$doc->load('result.xml');
$test = $doc->getElementsByTagName("legend")->item(0);
echo $test->nodeValue.PHP_EOL; //should print Delete
if("Delete" == $test->nodeValue)
{
$newElement = $doc->createElement('value');
$theAttribute = $doc->createAttribute('date');
$theAttribute->value='12345';
$newElement->appendChild($theAttribute);
$doc->appendChild($newElement);
}
echo $doc->saveXML();
?>
我得到的结果是这样的:
<report>
<sets>
<set>
<legend>Delete</legend>
<values>
<value date="2012-06-24" data="9"/>
<value date="2012-06-25" data="17"/>
<value date="2012-06-26" data="15"/>
<value date="2012-06-27" data="10"/>
<value date="2012-06-28" data="8"/>
</values>
</set>
<set>
<legend>Total Tickets</legend>
<values>
<value date="2012-06-24" data="412"/>
<value date="2012-06-25" data="416"/>
<value date="2012-06-26" data="423"/>
<value date="2012-06-27" data="405"/>
<value date="2012-06-28" data="280"/>
</values>
</set>
</sets>
</report>
<value date="12345"/>
我正在尝试获取显示为这样的数据:
<report>
<sets>
<set>
<legend>Delete</legend>
<values>
<value date="2012-06-24" data="9"/>
<value date="2012-06-25" data="17"/>
<value date="2012-06-26" data="15"/>
<value date="2012-06-27" data="10"/>
<value date="2012-06-28" data="8"/>
<value date="12345"/>
</values>
</set>
不确定如何将数据添加到该特定位置而不是 XML 的最后。
我感谢任何人对此的帮助。