2015-10-20 68 views
0

我的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

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

For an XMLList object that contains exactly one XML element, you can use all properties and methods of the XML class, because an XMLList with one XML element is treated the same as an XML object ...

在你的情况,xml.Year回报两个因素,这就是为什么你得到了这个错误。

因此,为了避免这种情况,你必须得到一个XMLList对象与一个元素等,例如,只选择“年”里的名字是“2016”:

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

希望能有所帮助。

+0

太棒了,非常感谢! –

相关问题