XML 유형 변환
Flash Player 9 이상, Adobe AIR 1.0 이상
XML 객체 및 XMLList 객체를 문자열 값으로 변환할 수 있습니다. 마찬가지로 문자열을 XML 객체 및 XMLList 객체로 변환할 수도 있습니다. 또한 모든 XML 특성 값, 이름, 텍스트 값 등은 문자열이라는 사실을 기억하십시오. 다음 단원에서는 이러한 모든 XML 유형 변환 형식에 대해 설명합니다.
XML 및 XMLList 객체를 문자열로 변환
XML 및 XMLList 클래스에는 toString() 메서드와 toXMLString() 메서드가 포함되어 있습니다. toXMLString() 메서드는 XML 객체의 모든 태그, 특성, 네임스페이스 선언 및 내용이 포함된 문자열을 반환합니다. 복잡한 내용, 즉 자식 요소를 포함하는 XML 객체의 경우 toString() 메서드는 toXMLString() 메서드와 완전히 동일하고, 간단한 내용, 즉 텍스트 요소 하나만 포함하는 XML 객체의 경우 toString() 메서드는 다음 예제와 같이 해당 요소의 텍스트 내용만 반환합니다.
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName.toXMLString());
// <menuName>burger</menuName>
trace(myXML.item[0].menuName.toString());
// burger
이 코드와 같이 toString() 또는 toXMLString()을 지정하지 않고 trace() 메서드를 사용하면 기본적으로 toString() 메서드를 사용하여 데이터가 변환됩니다.
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName);
// burger
trace() 메서드를 사용하여 코드를 디버깅하는 경우에는 trace() 메서드에서 좀 더 완전한 데이터를 출력하도록 toXMLString() 메서드를 사용할 수 있습니다.
문자열을 XML 객체로 변환
다음과 같이 new XML() 생성자를 사용하여 문자열에서 XML 객체를 만들 수 있습니다.
var x:XML = new XML("<a>test</a>");
유효하지 않거나 형식이 잘못된 XML을 나타내는 문자열을 XML로 변환하려고 하면 다음과 같이 런타임 오류가 발생합니다.
var x:XML = new XML("<a>test"); // throws an error
문자열 형식의 특성 값, 이름 및 텍스트 값 변환
모든 XML 특성 값, 이름 및 텍스트 값은 String 데이터 유형이며 이러한 값을 다른 데이터 유형으로 변환해야 할 수 있습니다. 예를 들어 다음 코드에서는 Number() 함수를 사용하여 텍스트 값을 숫자로 변환합니다.
var myXML:XML =
<order>
<item>
<price>3.95</price>
</item>
<item>
<price>1.00</price>
</item>
</order>;
var total:XML = <total>0</total>;
myXML.appendChild(total);
for each (var item:XML in myXML.item)
{
myXML.total.children()[0] = Number(myXML.total.children()[0])
+ Number(item.price.children()[0]);
}
trace(myXML.total); // 4.95;
이 코드에서 Number() 함수를 사용하지 않은 경우에는 + 연산자를 문자열 연결 연산자로 해석하므로 마지막 줄의 trace() 메서드에 의해 다음과 같이 출력됩니다.
01.003.95