Flex 반복 제거 XMLList의 노드

2439 단어 Flex
이 문제는 오랫동안 생각하고 여러 가지 귀착점을 썼으며 시행착오도 많이 했습니다. 당신들도 시행착오를 줄이기 위해서입니다.나는 해결 방법을 적어 놓았다.
장면에 적합: xmlList에서 자신의 노드를 삭제합니다.
인스턴스:
xmlList=









 





삭제 방법:visible="false"찾기, 검색 필터
실현: 반복
코드:
// , XMLList , , 
			private function delNoVisibleNode(xmllist:XMLList):void
			{
				//for each (var item:XML in xmllist)
				for (var i:int=xmllist.length() - 1; i >= 0; i--)
				{
					var item:XML=xmllist[i];
					if ([email protected]() == "false" && item != null)
					{
						delete xmllist[item.childIndex()];
						menuByVisibleFlaseXML.appendChild(item);
						// : delete xml.children()(@type ==  “car” && @color == “red”); 
					}
					else if ([email protected]() == "true")
					{
						if (item.hasComplexContent()) // 
						{
							arguments.callee(item.children());
							//delNoVisibleNode(item.children());
						}
					}
				}
			}

상기 코드 설명: 먼저 delete를 사용한 후 xmllist의 길이도 감소하였고foreach로 순환하는 횟수도 감소하여 노드가 깨끗하게 삭제되지 않았습니다.그래서 큰 순서에서 작은 순서로 삭제하는 것이 해결이다.
그 다음에 삭제할 때는 반드시 색인 index를 사용해야 합니다.xmlList[i]를 사용하면 삭제됩니다.

좋은 웹페이지 즐겨찾기