1 / 22

Xml Reader Class

Xml Reader Class. 컴퓨터 공학부 2005242099 이종혁. Xml Reader Class. 목차 XmlReader Class XmlReader Class 의 속성 XmlReader Class 의 메소드 실습. XmlReader Class. XmlReader 클래스는 XML 문서를 인식하고 읽기 위한 클래스 . 특징 - XML 데이터의 스트림에 비해 속도가 빠르고 캐싱되지 않는다 .

kaleb
Download Presentation

Xml Reader Class

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Xml Reader Class 컴퓨터 공학부 2005242099 이종혁

  2. Xml Reader Class • 목차 • XmlReader Class • XmlReader Class의 속성 • XmlReader Class의 메소드 • 실습

  3. XmlReader Class • XmlReader클래스는 XML문서를 인식하고 읽기 위한 클래스. • 특징 - XML 데이터의 스트림에 비해 속도가 빠르고 캐싱되지 않는다. - ForwardOnly방식으로 Xml데이터에 접근하기 때문에 속도 면에서 효율적이다.

  4. XmlReader클래스의 속성

  5. XmlReader클래스의 속성(2)

  6. AttributeCount속성 public abstract intAttributeCount {get;} • AttributeCount는 파생 클래스에서 재정의되면 현재 노드에 포함된 특성(Attribute) 수를 가져온다. • AttributeCount속성은 Element,DocumentType및 XmlDeclaration노드에만 관련되어있고 다른 노드와는 관련이 없다. ex) <font size=“12px” color=“green”> 특성이 size와 color 두 가지 이기 때문에 AttributeCount= 2

  7. HasAttributes 속성 public virtual boolHasAttributes {get;} • HasAttributes속성은 해당 엘리먼트가 특성(Attribute)을 가지는가의 여부를 보여준다. ex) <book>이라는 엘리먼트는 특성을 가지지 않는데 이런 경우 HasAttribute는 false, <book title=“노인과바다” pub_year=“2002”>라는 엘리먼트의 경우 2개의 엘리먼트를 가지고 있는데 이러한 경우에는 true값을 가지게 된다. - 즉, 특성의 수가 0이면 false, 1 이상이면 true를 반환.

  8. NodeType 속성 • XML문서를 구성하고 있는 노드들은 각각의 NodeType을 가지고 있으며 현재 노드의 형식을 가져와서 보여준다.

  9. XmlReader클래스의 메소드

  10. XmlReader클래스의 메소드(2)

  11. XmlReader클래스의 메소드(3) 가비지컬렉터: 가비지콜렉터는힙이라는 메모리 영역에만 존재 하며 다른 말로는 '쓰레기 수집자' 라고도 불리운다. 이 가비지 콜렉터는힙이라는 메모리 영역에서 살며 불필요한, 정확하게는 어떤 프로그램이 수행되는 도중에 그 프로그램에서  생성된 객체 (인스턴스)를 프로그램이 더 이상 사용하지 않을때 그 객체 (인스턴스)를 메모리에서 헤체 하는 역활을 한다.

  12. Close 메소드 public abstract void Close(); Close메소드는ReadState를 닫힘 상태로 만드는 역할을 한다. XmlReader클래스에는 특별히 Open메소드가 있지 않지만 사용을 종료하였을때Close메소드를 호출하여ReadState가 Closed 상태가 되게 해야 리소스를 절약할수있다. 이미Close가 수행되어ReadState속성이 Closed가 됐는데 Close메소드를 호출 할 경우 에러가 발생하지 않고 아무런 처리도 일어나지 않는다. 실행결과 GetAttribute메소드 - Public abstract string GetAttribute(int); 파생 클래스에서 재정의되면 지정된 인덱스가 있는 특성의 값을 가져온다. - Public abstract string GetAttribute(string); 파생 클래스에서 재정의되면 지정된 Name이 있는 특성의 값을 가져온다. - Public abstract string GetAttribute(string, string); 파생 클래스에서 재정의되면 지정된 LocalName및 NamespaceURI가 있는 특성의 값을 가져온다. 실행결과

  13. IsName 메소드 문자열 인수가 유효한 XML 이름인지 여부를 나타내는 값을 가져온다.유효한 이름이면 true를 반환. 그렇지 않으면 false를 반환 Public static boolIsName( string str); ◈매개변수 Str : 유효성을 확인할 이름이다. IsNameToken메소드 Public static boolIsNameToken( string str );◈매개변수 Str : 유효성을 검사할 이름 토큰이다. IsNameToken메소드도IsName메소드와 유사하게 문자열이 NameToken으로서 문자열 인수가 유효한 XML이름 토큰인지 여부를 나타내는 값을 가져온다.유효한 이름이면 true를 반환, 그렇지 않으면 false를 반환

  14. IsStartElement메소드 현재 노드가 시작태그(StartElement)인지를 검사 • public virtual boolIsStartElement(); • MoveTo Content를 호출하고 현재 내용 노드가 시작 태그 또는 빈 요소 태그인지 확인한다. • -public virtual boolIsStartElement(string); • MoveToContent를 호출하고 현재 내용 노드가 시작 태그 또는 빈 요소 태그인지 여부와 찾은 요소의 Name 속성이 지정된 인수와 일치하는지 여부를 확인한다. • -public virtual boolIsStartElement(string, string); • MoveToContent를 호출하고 현재 내용 노드가 시작 태그 또는 빈 요소 태그인지 여부와 찾은 요소의 LocalName및 NamespaceURI속성이 지정된 인수와 일치하는지 여부를 확인한다. 실행결과

  15. LookupNamespace 메소드 LookupNamespace메소드는 파생 클래스에서 재정의되면 현재 요소의 범위에서네임스페이스 접두사를 확인한다. LookupNamespace를 이용해서 Namespace접두사(Prefix)를찾고자 할때 접두사가 맵핑되는 네임스페이스 URI이거나일치하는 접두사가 있으면 해당 요소의 Name값을 반환하고 일치하는 접두사가 없는경우null값이 반환된다. 실행결과

  16. MoveToAttribute메소드 -Public abstract void MoveToAttribute(int); 파생클래스에서 재정의되면 지정된 인덱스가 있는 특성으로 이동한다. -Public abstract void MoveToAttribute(string); 파생 클래스에서 재정의되면 지정된 Name이 있는 특성으로 이동한다. -Public abstract boolMoveToAttribute(string, string) 파생 클래스에서 재정의되면 지정된 LocalName및 NamespaceURI가 있는 특성으로 이동한다. MoveTo접두사가 포함되어 있는 메소드는MoveTo다음에 오는 대상으로 이동하라는 것을 의미.MoveTo다음에 Element가 오면 요소로 이동하고Attribute가 오면 특성으로 이동하라는것. 실행결과

  17. MoveToContent메소드 public virtual XmlNodeTypeMoveToContent(); Content란 XML문서에서의 내용 노드를 의미 <?xml version=“1.0”><!DOCTYPE price SYSTEM”abc”><price>500원</price><?xml version=“1.0”><!DOCTYPE price SYSTEM “abc”[<!ENTTIY p”500원”>]><price>&p;</price> <!—주석문--><?processinginstruction?><price>500원</price> <price>라는 태그가 다양한 태그들 속에 숨어있는데 이러한 경우 MoveToContent를 이용하면 Price값을 찾게 된다. 실행결과

  18. MoveToFirstAttribute 메소드 Public abstract boolMoveToFirstAttribute(); -파생 클래스에서 재정의되면 첫번째 특성으로 이동한다. -여러 개의 특성이 있는 경우 첫번째 특성으로 이동하는 역할을하며 사용방법은 MoveToAttribute와 유사하다.-MoveToFirstAttribute메소드는 특성이 있어서 XmlReader의 개체가 첫번째 특성으로 이동하는 경우 true, 그렇지 않고 XmlReader의 위치가 바뀌지 않는 경우에는 false를 반환하고 이동은 일어나지 않게된다. MoveToNextAttribute메소드 Public abstract boolMoveToNextAttribute(); -파생클래스에서 재정의되면 XmlReader를 다음 특성으로 이동시킨다.-다음 특성이 있으면 true를 반환하고 이동이 일어나며 더 이상 특성이 없으면 false를 반환하고 이동하지 않는다

  19. Read 메소드 Public abstract bool Read(); -가장흔히 사용되는 중요한 메소드로 다음 노드로XmlReader를 이동하는 처리를 한다. -스트림에서 다음 노드를 읽는데 읽으면 true, 더 이상 읽을 노드가 없으면 false를 반환 실행결과 ReadAttributeValue메소드 -ReadAttributeValue메소드는 하나 이상의 Text,EntityReference또는 EndEntity노드로특성값을읽는 역할을 한다.-반환할 노드가 있으면 true값을 반환하고특성의값(AttributeValue)을 읽게된다.

  20. ReadElementString메소드 -단순한 텍스트 전용 요소를 읽는 데 사용. -Text전용 요소의 태그 사이의 값(ElementString)을 읽을 때 이용한다. ReadStartElement,ReadEndElement메소드 -ReadStartElement와 ReadEndElement는 각각 Start 요소와 End 요소를 찾아서 이동하는 역할을 하는 메소드. 결과

  21. ReadInnerXml,ReadOuterXml 메소드 -ReadInnerXml메소드는 태그를 포함한 모든 내용을 문자열로 읽는다. -현재노드에 자식 노드가 없으면 빈 문자열이 반환 -자식노드가 있는 경우 ReadInnerXml메소드는 태그를 포함하여 현재 노드의 모든 내용을 반환 -ReadOutterXml과 다른 점이라면 현재 노드(시작태그)와 해당 끝노드(끝 태그)는 반환되지 않는다. ReadInnerXml() Ex) <book> 노인과바다<title id=“123”/> </book> 반환 노인과바다<title id=“123”/> ReadInnerXml ReadOuterXml

  22. 실습 • Declation, 주석, Element, text ,CDATA DocumentType,EntityReference등 • Xml문서에서 읽을 수 있는 여러가지를 • 읽어서 출력해보자.

More Related