ActionScript의 XML 예제: 인터넷에서 RSS 데이터 로드Flash Player 9 이상, Adobe AIR 1.0 이상 RSSViewer 샘플 응용 프로그램에서는 다음과 같이 ActionScript에서 XML을 사용하여 작업할 수 있는 다양한 기능을 보여 줍니다.
RSS 형식은 XML을 통해 뉴스를 게시하는 데 주로 사용됩니다. 다음은 간단한 RSS 데이터 파일입니다. <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Alaska - Weather</title> <link>http://www.nws.noaa.gov/alerts/ak.html</link> <description>Alaska - Watches, Warnings and Advisories</description> <item> <title> Short Term Forecast - Taiya Inlet, Klondike Highway (Alaska) </title> <link> http://www.nws.noaa.gov/alerts/ak.html#A18.AJKNK.1900 </link> <description> Short Term Forecast Issued At: 2005-04-11T19:00:00 Expired At: 2005-04-12T01:00:00 Issuing Weather Forecast Office Homepage: http://pajk.arh.noaa.gov </description> </item> <item> <title> Short Term Forecast - Haines Borough (Alaska) </title> <link> http://www.nws.noaa.gov/alerts/ak.html#AKZ019.AJKNOWAJK.190000 </link> <description> Short Term Forecast Issued At: 2005-04-11T19:00:00 Expired At: 2005-04-12T01:00:00 Issuing Weather Forecast Office Homepage: http://pajk.arh.noaa.gov </description> </item> </channel> </rss> SimpleRSS 응용 프로그램은 인터넷에서 RSS 데이터를 읽은 후 헤드라인(제목), 링크 및 설명을 위해 데이터를 파싱한 다음 해당 데이터를 반환합니다. SimpleRSSUI 클래스는 UI를 제공하고, 모든 XML 처리 작업을 실행하는 SimpleRSS 클래스를 호출합니다. 이 샘플에 대한 응용 프로그램 파일을 가져오려면 www.adobe.com/go/learn_programmingAS3samples_flash_kr를 참조하십시오. RSSViewer 응용 프로그램 파일은 Samples/RSSViewer 폴더에 있으며 이 응용 프로그램은 다음과 같은 파일로 구성됩니다.
XML 데이터 읽기 및 파싱RSSParser 클래스에는 rssXML 변수에 저장된 입력 RSS 데이터를 HTML 형식 출력(rssOutput)이 들어 있는 문자열로 변환하는 xmlLoaded() 메서드가 포함되어 있습니다. 소스 RSS 데이터에 기본 네임스페이스가 포함되어 있는 경우 코드에서는 메서드의 시작 부분에서 기본 XML 네임스페이스를 설정합니다. if (rssXML.namespace("") != undefined) { default xml namespace = rssXML.namespace(""); } 그러면 다음 줄에서 소스 XML 데이터의 내용을 반복하여 item이라는 각 하위 속성을 검사합니다. for each (var item:XML in rssXML..item) { var itemTitle:String = item.title.toString(); var itemDescription:String = item.description.toString(); var itemLink:String = item.link.toString(); outXML += buildItemHTML(itemTitle, itemDescription, itemLink); } 처음 세 줄에서는 문자열 변수를 설정하여 XML 데이터에 대한 item 속성의 제목, 설명 및 링크 속성을 나타냅니다. 그러면 다음 줄에서 buildItemHTML() 메서드를 호출하여 HTML 데이터를 XMLList 객체 형식으로 가져옵니다. 이때 세 개의 새 문자열 변수를 매개 변수로 사용합니다. XMLList 데이터 어셈블HTML 데이터(XMLList 객체)는 다음과 같은 형식으로 되어 있습니다. <b>itemTitle</b> <p> itemDescription <br /> <a href="link"> <font color="#008000">More...</font> </a> </p> 메서드의 첫 번째 줄에서는 기본 xml 네임스페이스를 제거합니다. default xml namespace = new Namespace(); default xml namespace 지시문에는 함수 블록 수준 범위가 있습니다. 즉, 이 선언의 범위가 buildItemHTML() 메서드입니다. 그 다음에 나오는 줄에서는 함수에 전달된 문자열 인수에 따라 XMLList를 어셈블합니다. var body:XMLList = new XMLList(); body += new XML("<b>" + itemTitle + "</b>"); var p:XML = new XML("<p>" + itemDescription + "</p>"); var link:XML = <a></a>; link.@href = itemLink; // <link href="itemLinkString"></link> link.font.@color = "#008000"; // <font color="#008000"></font></a> // 0x008000 = green link.font = "More..."; p.appendChild(<br/>); p.appendChild(link); body += p; 이 XMLList 객체는 ActionScript HTML 텍스트 필드에 적합한 문자열 데이터를 나타냅니다. xmlLoaded() 메서드는 buildItemHTML() 메서드의 반환값을 사용하고 이 값을 문자열로 변환합니다. XML.prettyPrinting = false; rssOutput = outXML.toXMLString(); RSS 피드 제목 추출 및 사용자 정의 이벤트 보내기xmlLoaded() 메서드는 소스 RSS XML 데이터의 정보를 기초로 rssTitle 문자열 변수를 설정합니다. rssTitle = rssXML.channel.title.toString(); 마지막으로 xmlLoaded() 메서드는 데이터가 파싱되어 사용할 수 있음을 응용 프로그램에 알리는 이벤트를 생성합니다. dataWritten = new Event("dataWritten", true); |
|