如何将子项附加到包含多个项目的列表中。

时间:2015-10-20 08:13:59

标签: actionscript-3 air

我的xml看起来像这样:

<Database>
<Year name="2015" spent="" saved="">
<Month name="" spent="" saved="">
  <Day date="" name="" spent="" saved="">
    <Entry title="" category="" currency="" cost="" time=""/>
  </Day>
</Month>
</Year>

<Year name="2016" spent="" saved="150">
<Month name="" spent="" saved="">
  <Day date="" name="" spent="" saved="">
    <Entry title="" category="" currency="" cost="" time=""/>
  </Day>
</Month>

   

当我使用

myXML.Year.appendChild(<Month name="2016" spent="150" saved="152"></Month>);

我收到以下错误:

 TypeError: Error #1086: The appendChild method only works on lists     containing one item.
    at XMLList/http://adobe.com/AS3/2006/builtin::appendChild()

有什么想法吗?

以下是我要做的事情:我正在开发一个记录并跟踪日常开支的Android应用程序。因此,当用户为2015年添加新条目时,我会检查该年份是否已经存在,如果确实如此,我想在这些年内进入并查看月份是否存在,如果它也存在,那么我检查是否当天已经存在。如果是,我在日期列表中添加新条目,如果它没有在日期列表中创建新节点。同样可以持续数年和数月。我很难搞清楚这一点。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:1)

appendChild()XML类的方法,XMLList被视为XML对象it should have one XML element

  

对于只包含一个XML元素的XMLList对象,可以使用XML类的所有属性和方法,因为带有一个XML元素的XMLList被视为与XML对象相同...

在您的情况下,xml.Year会返回两个元素,这就是您遇到错误的原因。

为了避免这种情况,你必须得到一个XMLList对象,其中包含一个元素,例如,只选择&#34;年&#34;其名称为&#34; 2016&#34; :

xml.Year.(@name == '2016').appendChild(<Month name="2016" spent="150" saved="152"></Month>)

希望可以提供帮助。