패키지 | flash.xml |
클래스 | public class XMLDocument |
상속 | XMLDocument XMLNode Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
XMLNode 및 XMLNodeType과 마찬가지로 XMLDocument 클래스는 이전 버전과의 호환성을 위해 제공됩니다. XML 문서를 로드하는 기능은 이제 URLLoader 클래스에서 제공합니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
attributes : Object
지정된 XMLNode 인스턴스의 특성이 모두 들어 있는 객체입니다. | XMLNode | ||
childNodes : Array [읽기 전용]
지정된 XMLNode 객체의 자식 배열입니다. | XMLNode | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
docTypeDecl : Object = null
XML 문서의 DOCTYPE 선언에 대한 정보를 지정합니다. | XMLDocument | ||
firstChild : XMLNode
지정된 XMLDocument 객체를 평가하고 부모 노드의 자식 목록에서 첫 번째 자식을 참조합니다. | XMLNode | ||
idMap : Object
id 특성이 할당된 XML 노드가 들어 있는 객체입니다. | XMLDocument | ||
ignoreWhite : Boolean = false
true로 설정되어 있으면 공백만 있는 텍스트 노드를 파싱 과정에서 버립니다. | XMLDocument | ||
lastChild : XMLNode
노드의 자식 목록에서 마지막 자식을 참조하는 XMLNode 값입니다. | XMLNode | ||
localName : String [읽기 전용]
XML 노드 이름의 로컬 이름 부분입니다. | XMLNode | ||
namespaceURI : String [읽기 전용]
XML 노드에 접두어가 있는 경우 namespaceURI는 일반적으로 네임스페이스 URI라고 하는 해당 접두어(URI)에 대한 xmlns 선언 값입니다. | XMLNode | ||
nextSibling : XMLNode
부모 노드의 자식 목록에서 다음 형제 노드를 참조하는 XMLNode 값입니다. | XMLNode | ||
nodeName : String
XMLNode 객체의 노드 이름을 나타내는 문자열입니다. | XMLNode | ||
nodeType : uint
nodeType 상수 값으로, XML 요소의 경우 XMLNodeType.ELEMENT_NODE이고 텍스트 노드의 경우 XMLNodeType.TEXT_NODE입니다. | XMLNode | ||
nodeValue : String
XMLDocument 객체의 노드 값입니다. | XMLNode | ||
parentNode : XMLNode
지정된 XML 객체의 부모 노드를 참조하는 XMLNode 값입니다. 노드에 부모가 없으면 null이 반환됩니다. | XMLNode | ||
prefix : String [읽기 전용]
XML 노드 이름의 접두어 부분입니다. | XMLNode | ||
previousSibling : XMLNode
부모 노드의 자식 목록에서 이전 형제를 참조하는 XMLNode 값입니다. | XMLNode | ||
xmlDecl : Object = null
문서의 XML 선언에 대한 정보를 지정하는 문자열입니다. | XMLDocument |
메서드 | 정의 주체 | ||
---|---|---|---|
XMLDocument(source:String = null)
새 XMLDocument 객체를 만듭니다. | XMLDocument | ||
지정된 노드를 XML 객체의 자식 목록에 추가합니다. | XMLNode | ||
지정된 XML 객체와 유형, 이름, 값 및 특성이 동일한 새 XML 노드를 구성하여 반환합니다. | XMLNode | ||
매개 변수에 지정된 이름으로 새 XMLNode 객체를 만듭니다. | XMLDocument | ||
지정된 텍스트를 사용하여 새 XML 텍스트 노드를 만듭니다. | XMLDocument | ||
노드의 지정된 접두어와 연결된 네임스페이스 URI를 반환합니다. | XMLNode | ||
노드의 지정된 네임스페이스 URI와 연결된 접두어를 반환합니다. | XMLNode | ||
지정된 XMLNode 객체에 자식 노드가 있는지 여부를 나타냅니다. | XMLNode | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
XML 객체의 자식 목록에서 beforeNode 노드 앞에 새 자식 노드를 삽입합니다. | XMLNode | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
값 매개 변수에 지정된 XML 텍스트를 파싱하고 지정된 XMLDocument 객체를 결과 XML 트리로 채웁니다. | XMLDocument | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
부모에서 지정된 XML 객체를 제거합니다. | XMLNode | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
[재정의]
XML 객체의 문자열 표현을 반환합니다. | XMLDocument | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
docTypeDecl | 속성 |
public var docTypeDecl:Object = null
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
XML 문서의 DOCTYPE
선언에 대한 정보를 지정합니다. XML 텍스트가 XMLDocument 객체로 파싱된 후 XMLDocument 객체의 XMLDocument.docTypeDecl
속성은 XML 문서의 DOCTYPE
선언 텍스트(예: <!DOCTYPE
greeting SYSTEM "hello.dtd">
)로 설정됩니다. 이 속성은 XMLNode 객체가 아니라 DOCTYPE
선언의 문자열 표현을 사용하여 설정됩니다.
레거시 ActionScript XML 파서는 유효성 검사 파서가 아닙니다. 이 파서는 DOCTYPE
선언을 읽어 XMLDocument.docTypeDecl
속성에 저장하지만 DTD 유효성 검사는 수행하지 않습니다.
파싱 작업 동안 DOCTYPE
선언을 찾을 수 없으면 XMLDocument.docTypeDecl
속성은 null
로 설정됩니다. XML.toString()
메서드는 XML.docTypeDecl
의 내용을 XML.xmlDecl
에 저장된 XML 선언 바로 뒤, XML 객체의 다른 텍스트 앞에 출력합니다. XMLDocument.docTypeDecl
이 null이면 DOCTYPE
선언이 출력되지 않습니다.
idMap | 속성 |
public var idMap:Object
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
id
특성이 할당된 XML 노드가 들어 있는 객체입니다. 노드가 들어 있는 각 객체의 속성 이름은 id
특성의 값과 일치합니다.
다음과 같은 XMLDocument 객체를 살펴보십시오.
<employee id='41'> <name> John Doe </name> <address> 601 Townsend St. </address> </employee> <employee id='42'> <name> Jane Q. Public </name> </employee> <department id="IT"> Information Technology </department>
이 예제에서 이 XMLDocument 객체의 idMap
속성은 41
, 42
및 IT
라는 세 개의 속성이 있는 객체입니다. 각 속성은 일치하는 id
값이 있는 XMLNode입니다. 예를 들어 idMap
객체의 IT
속성은 다음 노드와 같습니다.
<department id="IT"> Information Technology </department>
idMap
속성을 인스턴스화하려면 XMLDocument 객체에 parseXML()
메서드를 사용해야 합니다.
id
값이 동일한 XMLNode가 둘 이상 있으면 idNode
객체에서 일치하는 속성은 마지막으로 파싱된 노드의 속성입니다. 예를 들면 다음과 같습니다.
var x1:XML = new XMLDocument("<a id='1'><b id='2' /><c id='1' /></a>"); x2 = new XMLDocument(); x2.parseXML(x1); trace(x2.idMap['1']);
<c>
노드가 출력됩니다.
<c id='1' />
ignoreWhite | 속성 |
public var ignoreWhite:Boolean = false
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
true
로 설정되어 있으면 공백만 있는 텍스트 노드를 파싱 과정에서 버립니다. 선행 또는 후행 공백이 있는 텍스트 노드는 영향을 받지 않습니다. 기본 설정은 false
입니다.
다음 코드와 같이 개별 XMLDocument 객체의 ignoreWhite
속성을 설정할 수 있습니다.
my_xml.ignoreWhite = true;
xmlDecl | 속성 |
public var xmlDecl:Object = null
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
문서의 XML 선언에 대한 정보를 지정하는 문자열입니다. XML 문서가 XMLDocument 객체로 파싱된 후 이 속성은 문서의 XML 선언 텍스트로 설정됩니다. 이 속성은 XMLNode 객체가 아니라 XML 선언의 문자열 표현을 사용하여 설정됩니다. 파싱 작업 동안 XML 선언을 찾을 수 없으면 이 속성은 null
로 설정됩니다. XMLDocument.toString()
메서드는 XML.xmlDecl
속성의 내용을 XML 객체의 다른 텍스트 앞에 출력합니다. XML.xmlDecl
속성에 null
이 포함되어 있으면 XML 선언이 출력되지 않습니다.
XMLDocument | () | 생성자 |
public function XMLDocument(source:String = null)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
새 XMLDocument 객체를 만듭니다. XMLDocument 클래스의 메서드를 호출하기 전에 생성자를 사용하여 XMLDocument 객체를 만들어야 합니다.
참고: createElement()
및 createTextNode()
메서드를 사용하여 요소와 텍스트 노드를 XML 문서 트리에 추가합니다.
source:String (default = null ) — 새 XMLDocument 객체를 만들기 위해 파싱할 XML 텍스트입니다.
|
관련 API 요소
createElement | () | 메서드 |
public function createElement(name:String):XMLNode
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
매개 변수에 지정된 이름으로 새 XMLNode 객체를 만듭니다. 처음에는 새 노드에 부모, 자식 및 형제가 없습니다. 이 메서드는 요소를 나타내는 새로 만든 XMLNode 객체에 대한 참조를 반환합니다. 이 메서드와 XMLDocument.createTextNode()
메서드는 XMLDocument 객체의 노드를 만드는 생성자 메서드입니다.
매개 변수
name:String — 만들려는 XMLDocument 요소의 태그 이름입니다.
|
XMLNode — XMLNode 객체입니다.
|
관련 API 요소
createTextNode | () | 메서드 |
public function createTextNode(text:String):XMLNode
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
지정된 텍스트를 사용하여 새 XML 텍스트 노드를 만듭니다. 새로운 노드에는 처음에 부모가 없으며, 텍스트 노드는 자식이나 형제 노드를 가질 수 없습니다. 이 메서드는 새 텍스트 노드를 나타내는 XMLDocument 객체에 대한 참조를 반환합니다. 이 메서드와 XMLDocument.createElement()
메서드는 XMLDocument 객체의 노드를 만드는 생성자 메서드입니다.
매개 변수
text:String — 새 텍스트 노드를 만드는 데 사용할 텍스트입니다.
|
XMLNode — XMLNode 객체입니다.
|
관련 API 요소
parseXML | () | 메서드 |
toString | () | 메서드 |
package { import flash.display.Sprite; import flash.xml.XMLDocument; import flash.xml.XMLNode; import flash.xml.XMLNodeType; public class XMLDocumentExample extends Sprite { public function XMLDocumentExample() { var result:XMLDocument = new XMLDocument(); result.ignoreWhite = true; result.parseXML(getXMLString()); var books:Array = parseBooks(result.firstChild); trace("books: \n" + books); } private function parseBooks(node:XMLNode):Array { var books:Array = new Array(); var kids:Array = node.childNodes; for each(var item:XMLNode in kids) { parseBook(item, books); } return books; } private function parseBook(node:XMLNode, books:Array):void { var item:Book = new Book(); item.setPublisher(node.attributes.publisher); item.setName(node.attributes.name); books.push(item); } private function getXMLString():String { var list:XML = <books> <book publisher="Addison-Wesley" name="Design Patterns" /> <book publisher="Addison-Wesley" name="The Pragmatic Programmer" /> <book publisher="Addison-Wesley" name="Test Driven Development" /> <book publisher="Addison-Wesley" name="Refactoring to Patterns" /> <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" /> <book publisher="O'Reilly Media" name="Unit Test Frameworks" /> </books>; return list.toXMLString(); } } } class Book { private var publisher:String; private var name:String; public function setPublisher(publisher:String):void { this.publisher = publisher; } public function setName(name:String):void { this.name = name; } public function toString():String { return "[Book name: " + name + " publisher: " + publisher + "]\n"; } }
Tue Jun 12 2018, 03:17 PM Z