다음을 통해 공유


특성 읽기

업데이트: November 2007

XmlReader 클래스는 특성을 읽기 위한 다양한 메서드 및 속성을 제공합니다. 특성은 대부분 요소에 있습니다. 그러나 XML 선언 및 문서 형식 노드에서도 사용할 수 있습니다.

요소 특성 읽기

MoveToAttribute 메서드가 요소 노드에 있을 경우 이 메서드를 사용하여 요소의 특성 목록을 살펴볼 수 있습니다. MoveToAttribute를 호출한 후 Name, NamespaceURI, Prefix 등의 노드 속성은 이 특성이 속해 있는 요소의 속성이 아니라 이 특성의 속성을 반영합니다.

다음 표에서는 특성을 처리하기 위해 특정하게 디자인된 메서드 및 속성에 대해 설명합니다.

멤버 이름

설명

AttributeCount

요소의 특성 수를 얻습니다.

GetAttribute

특성 값을 얻습니다.

HasAttributes

현재 노드에 특성이 있는지 여부를 나타내는 값을 얻습니다.

IsDefault

현재 노드가 DTD 또는 스키마에 정의된 기본값에서 생성된 특성인지 여부를 나타내는 값을 얻습니다.

Item

지정된 특성의 값을 얻습니다.

MoveToAttribute

지정된 특성으로 이동합니다.

MoveToElement

현재 특성 노드를 소유하고 있는 요소로 이동합니다.

MoveToFirstAttribute

첫 번째 특성으로 이동합니다.

MoveToNextAttribute

다음 특성으로 이동합니다.

ReadAttributeValue

하나 이상의 Text, EntityReference 또는 EndEntity 노드로 특성 값을 구문 분석합니다.

또한 일반 XmlReader 메서드 및 속성을 사용하여 특성을 처리할 수 있습니다. 예를 들어, 특성에 XmlReader를 배치한 후 NameValue 속성은 이 특성 값을 반영합니다. 내용 Read 메서드를 사용하여 특성 값을 얻을 수도 있습니다.

다른 노드 형식에서 특성 읽기

요소 노드에서 특성을 처리하는 것이 가장 일반적인 시나리오입니다. XML 선언 및 문서 형식 선언에서도 특성을 찾을 수 있습니다.

참고:

처리 명령 노드에 XmlReader를 배치하면 Value 속성은 전체 텍스트 내용을 반환합니다. 처리 명령 노드의 항목은 특성으로 간주되지 않으며 GetAttribute 또는 MoveToAttribute 메서드를 사용하여 읽을 수 없습니다.

XML 선언 노드

XML 선언 노드에 버전, 독립 실행형 및 인코딩 정보가 배치될 경우 Value 속성은 이 정보를 단일 문자열로 반환합니다. 일부 판독기에서 버전, 인코딩 및 독립 실행형 정보를 특성으로 노출할 수도 있습니다.

참고:

Create 메서드로 생성된 XmlReader 개체, XmlTextReaderXmlValidatingReader 클래스는 버전, 독립 실행형 및 인코딩 항목을 특성으로 노출합니다.

문서 형식 노드

문서 형식 노드에 XmlReader를 배치하면 GetAttribute 메서드 및 Item 속성을 사용하여 SYSTEM 및 PUBLIC 리터럴에 대한 값을 반환할 수 있습니다. 예를 들어, reader.GetAttribute("PUBLIC")를 호출하면 PUBLIC 값이 반환됩니다.

예제

다음 예제에서는 AttributeCount 속성을 사용하여 요소에 있는 모든 특성을 읽습니다.

' Display all attributes.
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  Dim i As Integer
  For i = 0 To (reader.AttributeCount - 1)
    Console.WriteLine("  {0}", reader(i))
  Next i
  ' Move the reader back to the element node.
  reader.MoveToElement() 
End If
// Display all attributes.
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  for (int i = 0; i < reader.AttributeCount; i++) {
    Console.WriteLine("  {0}", reader[i]);
  }
  // Move the reader back to the element node.
  reader.MoveToElement(); 
}

다음 예제에서는 While 루프에 MoveToNextAttribute 메서드를 사용하여 요소에 있는 모든 특성을 읽습니다.

If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  While reader.MoveToNextAttribute()
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value)
  End While
  ' Move the reader back to the element node.
  reader.MoveToElement()
End If
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  while (reader.MoveToNextAttribute()) {
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}

다음 예제에서는 이름으로 특성 값을 얻습니다.

reader.ReadToFollowing("book")
Dim isbn As String = reader.GetAttribute("ISBN")
Console.WriteLine("The ISBN value: " + isbn)
reader.ReadToFollowing("book");
string isbn = reader.GetAttribute("ISBN");
Console.WriteLine("The ISBN value: " + isbn);

참고 항목

개념

XmlReader로 XML 읽기