AS3.0 Cookbook/비디오2008. 9. 20. 19:28
AS3.0 Cookbook/XML2008. 9. 20. 18:58
XML에 html문법이나 자바스크립트를 설정하고 싶으면 <![CDATA[[코드]]> 노드를 사용한다.
<![CDATA[코드]]>노드는 XML 파서에 의해 해석하지 말고 그대로 브라우저에 출력하라는 명령문으로 html의 링크나 자바스크립트 명령문을 설정하여 이를 호출하여 사용할 수 있다.
var data2:XML =
<test>
<![CDATA[<a href="htttp://www.daum.net">다음</a>]]>
</test>
var data3:XML =
var data3:XML =
<test>
<![CDATA[<a href="javascript:alert('test')">얼랏</a>]]>
</test >
또는 자바스크립트인 경우 직접 함수를 선언할 수 있다.
var alert:XML =
또는 자바스크립트인 경우 직접 함수를 선언할 수 있다.
var alert:XML =
<alert>
<![CDATA[
function alertFunc(str)
{
alert(str);
}
]]>
</alert>
function alertFunc(str)
{
alert(str);
}
]]>
</alert>
AS3.0 Cookbook/XML2008. 9. 20. 18:49
XML데이터의 노드를 찾기 위해서는 Xpath나 서술필터링을 사용하여 노드 데이터로 접근한다.
Xpath는 계층구조의 트리형태로 접근하여 노드나 값을 접근하고 서술 필터링은 조건식을 사용하여 노드나 값에 접근한다.
var data1:XML = <foods>
<fruits>
<fruit color="red">
<name>Apple</name>
</fruit>
<fruit color="orange">
<name>Orange</name>
</fruit>
<fruit color="green">
<name>WaterMelone</name>
</fruit>
<servings>3</servings>
</fruits>
<vegetables>
<vegetable color="red">
<name>토마토</name>
</vegetable>
<vegetable color="brown">
<name>감자</name>
</vegetable>
<vegetable color="green">
<name>양파</name>
</vegetable>
<servings>2</servings>
<vegetable color="green">
<name>멜론</name>
</vegetable>
<servings>2</servings>
</vegetables>
</foods>;
[ Xpath방식 ]
- 계층(트리)구조식로 데이터 접근
var fruitsList:XMLList = data1.fruits.fruit;
trace("******** fruitsList ******** \n " , fruitsList )
<fruit color="red">
<name>Apple</name>
</fruit>
<fruit color="orange">
<name>Orange</name>
</fruit>
<fruit color="green">
<name>WaterMelone</name>
</fruit>
var apple:XML = data1.fruits.fruit[0];
trace("******** apple ******** \n " , apple )
<fruit color="red">
<name>Apple</name>
</fruit>
var vegetableList:XMLList = data1..vegetable;
trace("******** vegetableList ******** \n " , vegetableList )
<vegetable color="red">
<name>토마토</name>
</vegetable>
<vegetable color="brown">
<name>감자</name>
</vegetable>
<vegetable color="green">
<name>양파</name>
</vegetable>
<vegetable color="green">
<name>멜론</name>
</vegetable>
var servings:XMLList = data1.*.servings;
trace("******** servings ******** \n " , servings )
<servings>3</servings>
<servings>2</servings>
<servings>2</servings>
var color:XMLList = data1.fruits.fruit.@color;
trace("******** color ******** \n " , color )
redorangegreen
[ 서술 필터링 ]
- 서술필터링은 조건형식으로 사용, 조건에 맞는 속성/노드를 선택
trace("******** fruit red color ******** \n " , data1..fruit.(@color == "red") );
<fruit color="red">
<name>Apple</name>
</fruit>
trace("******** vegetable green color ******** \n " , data1..vegetable.(@color == "green") );
<vegetable color="green">
<name>양파</name>
</vegetable>
<vegetable color="green">
<name>멜론</name>
</vegetable>
trace("******** 사과의 컬러 속성 ******** \n " , data1..fruit.(name=="Apple").@color)
red
* 첫문자 모음 출력
trace("******** 모음 출력 ******** \n " , data1..fruit.(/^[aeiouAEIOU].*/.test(name) ) )
<fruit color="red">
<name>Apple</name>
</fruit>
<fruit color="orange">
<name>Orange</name>
</fruit>