Apache flex 无法检查Adobe Flex 3中的现有XML节点
我正在从服务器获取XML数据(请参考xmlData值)。 我需要:Apache flex 无法检查Adobe Flex 3中的现有XML节点,apache-flex,Apache Flex,我正在从服务器获取XML数据(请参考xmlData值)。 我需要: 使用非重复文件夹创建另一个XML 创建另一个XML,每月进行最终计数 我无法使用下面的代码执行此操作,并且无法获取重复记录 private var xmlData:XML = new XML("<root><SUMMARY_RECORD><FOLDER>Folder1</FOLDER><COUNT>100</COUNT><MONTH>Feb&
private var xmlData:XML = new XML("<root><SUMMARY_RECORD><FOLDER>Folder1</FOLDER><COUNT>100</COUNT><MONTH>Feb</MONTH><QUARTER>Q1</QUARTER><YEAR>2014</YEAR></SUMMARY_RECORD><SUMMARY_RECORD><FOLDER>Folder1</FOLDER><COUNT>100</COUNT><MONTH>Feb</MONTH><QUARTER>Q1</QUARTER><YEAR>2014</YEAR></SUMMARY_RECORD></root>");
var folderDataXML:XML = new XML("<root></root>");
var folderDGDataXML:XML = new XML("<root></root>");
private function loaded():void{
var item:XML;
folderDGDataXML.appendChild(new XML("<FOLDER_NAME><Name>ALL</Name></FOLDER_NAME>"));
for each (item in xmlData.SUMMARY_RECORD){
if (folderDGDataXML.FOLDER_NAME.(Name==item.FOLDER).toString() == ""){
folderDGDataXML.appendChild(new XML("<FOLDER_NAME><Name>"+item.FOLDER+"</Name></FOLDER_NAME>"));
}
if (folderDataXML.SUMMARY_RECORD.(Name==item.MONTH).toXMLString() == ""){
folderDataXML.appendChild(new XML("<SUMMARY_RECORD><Name>"+item.MONTH+"</Name><COUNT>"+item.COUNT+"</COUNT></SUMMARY_RECORD>"));
}else{
var count:int = Number(folderDataXML.SUMMARY_RECORD.(Name==item.MONTH).COUNT) + Number(item.COUNT);
folderDataXML.SUMMARY_RECORD.(Name==item.MONTH).COUNT = count;
}
}
}
private var xmlData:XML=newxml(“Folder1100FebQ12014Folder1100FebQ12014”);
var folderDataXML:XML=newxml(“”);
var folderDGDataXML:XML=newxml(“”);
已加载私有函数():void{
var项:XML;
appendChild(新的XML(“全部”));
对于每个(xmlData.SUMMARY_记录中的项目){
if(folderDGDataXML.FOLDER_NAME.(NAME==item.FOLDER).toString()==“”){
appendChild(新XML(“+item.FOLDER+”);
}
if(folderDataXML.SUMMARY_记录。(名称==项.月)。toXMLString()==“”){
appendChild(新XML(“+item.MONTH+”“+item.COUNT+”);
}否则{
变量计数:int=Number(folderDataXML.SUMMARY_记录)(Name==item.MONTH.count)+Number(item.count);
folderDataXML.SUMMARY_记录(Name==item.MONTH).COUNT=COUNT;
}
}
}
最终输出,folderDGDataXML:
<root>
<FOLDER_NAME>
<Name>ALL</Name>
</FOLDER_NAME>
<FOLDER_NAME>
<Name>Folder1</Name>
</FOLDER_NAME>
<FOLDER_NAME>
<Name>Folder1</Name>
</FOLDER_NAME>
</root>
全部的
折叠1
折叠1
folderDataXML:
<root>
<SUMMARY_RECORD>
<Name>Feb</Name>
<COUNT>100</COUNT>
</SUMMARY_RECORD>
<SUMMARY_RECORD>
<Name>Feb</Name>
<COUNT>100</COUNT>
</SUMMARY_RECORD>
</root>
二月
100
二月
100
我做错了什么?
得到正确的XML后,我需要填充datagrid&column chart。试试这个
在XML中,使用hasOwnProperty
检查元素是否存在,或者我们可以在操作符中使用,如果它是基于值的,则可以这样尝试folderDGDataXML.substands(“FOLDER_NAME”)(NAME.text()=“Folder1”)代码>//始终返回XMLList。在length()的帮助下,我们可以预测具有值的元素是否发生
希望这对你有用
var xmlData:XML = new XML("<root><SUMMARY_RECORD><FOLDER>Folder1</FOLDER><COUNT>100</COUNT><MONTH>Feb</MONTH><QUARTER>Q1</QUARTER><YEAR>2014</YEAR></SUMMARY_RECORD><SUMMARY_RECORD><FOLDER>Folder1</FOLDER><COUNT>100</COUNT><MONTH>Feb</MONTH><QUARTER>Q1</QUARTER><YEAR>2014</YEAR></SUMMARY_RECORD></root>");
var folderDataXML:XML = new XML("<root></root>");
var folderDGDataXML:XML = new XML("<root></root>");
var item:XML;
folderDGDataXML.appendChild(new XML("<FOLDER_NAME><Name>ALL</Name></FOLDER_NAME>"));
for each (item in xmlData.SUMMARY_RECORD)
{
var folderName:String = item.FOLDER.text();
var monthName:String = item.MONTH.text();
var existXMLList:XMLList = folderDGDataXML.descendants("FOLDER_NAME").(Name.text() == folderName);
if (existXMLList.length() == 0)
{
folderDGDataXML.appendChild(new XML("<FOLDER_NAME><Name>"+item.FOLDER+"</Name></FOLDER_NAME>"));
}
var monthXMLList:XMLList = folderDataXML.descendants("SUMMARY_RECORD").(Name.text() == monthName);
if (monthXMLList.length() == 0)
{
folderDataXML.appendChild(new XML("<SUMMARY_RECORD><Name>"+item.MONTH+"</Name><COUNT>"+item.COUNT+"</COUNT></SUMMARY_RECORD>"));
}
else
{
monthXMLList..COUNT = Number(monthXMLList..COUNT) + Number(item.COUNT);
//If more than one node it throws error. you need to use loop operation
}
}
trace("folderDGDataXML" + folderDGDataXML);
trace("folderDataXML" + folderDataXML);
var xmlData:XML=newxml(“Folder1100FebQ12014Folder1100FebQ12014”);
var folderDataXML:XML=newxml(“”);
var folderDGDataXML:XML=newxml(“”);
var项:XML;
appendChild(新的XML(“全部”));
对于每个(xmlData.SUMMARY_记录中的项目)
{
var folderName:String=item.FOLDER.text();
var monthName:String=item.MONTH.text();
var existXMLList:XMLList=folderDGDataXML.substands(“文件夹名称”)(NAME.text()==folderName);
如果(existXMLList.length()=0)
{
appendChild(新XML(“+item.FOLDER+”);
}
var monthXMLList:XMLList=folderDataXML.SUMMARY(“SUMMARY_RECORD”)(Name.text()==monthName);
如果(monthXMLList.length()=0)
{
appendChild(新XML(“+item.MONTH+”“+item.COUNT+”);
}
其他的
{
monthXMLList..COUNT=编号(monthXMLList..COUNT)+编号(item.COUNT);
//如果有多个节点,它会抛出错误。您需要使用循环操作
}
}
跟踪(“folderDGDataXML”+folderDGDataXML);
跟踪(“folderDataXML”+folderDataXML);
Hi Raja,谢谢你的回复。谢谢你的回复。在使用另一个值(如)更改元素后,我的代码工作正常。