특성 읽기
업데이트: November 2007
XmlReader 클래스는 특성을 읽기 위한 다양한 메서드 및 속성을 제공합니다. 특성은 대부분 요소에 있습니다. 그러나 XML 선언 및 문서 형식 노드에서도 사용할 수 있습니다.
요소 특성 읽기
MoveToAttribute 메서드가 요소 노드에 있을 경우 이 메서드를 사용하여 요소의 특성 목록을 살펴볼 수 있습니다. MoveToAttribute를 호출한 후 Name, NamespaceURI, Prefix 등의 노드 속성은 이 특성이 속해 있는 요소의 속성이 아니라 이 특성의 속성을 반영합니다.
다음 표에서는 특성을 처리하기 위해 특정하게 디자인된 메서드 및 속성에 대해 설명합니다.
멤버 이름 |
설명 |
---|---|
요소의 특성 수를 얻습니다. |
|
특성 값을 얻습니다. |
|
현재 노드에 특성이 있는지 여부를 나타내는 값을 얻습니다. |
|
현재 노드가 DTD 또는 스키마에 정의된 기본값에서 생성된 특성인지 여부를 나타내는 값을 얻습니다. |
|
지정된 특성의 값을 얻습니다. |
|
지정된 특성으로 이동합니다. |
|
현재 특성 노드를 소유하고 있는 요소로 이동합니다. |
|
첫 번째 특성으로 이동합니다. |
|
다음 특성으로 이동합니다. |
|
하나 이상의 Text, EntityReference 또는 EndEntity 노드로 특성 값을 구문 분석합니다. |
또한 일반 XmlReader 메서드 및 속성을 사용하여 특성을 처리할 수 있습니다. 예를 들어, 특성에 XmlReader를 배치한 후 Name 및 Value 속성은 이 특성 값을 반영합니다. 내용 Read 메서드를 사용하여 특성 값을 얻을 수도 있습니다.
다른 노드 형식에서 특성 읽기
요소 노드에서 특성을 처리하는 것이 가장 일반적인 시나리오입니다. XML 선언 및 문서 형식 선언에서도 특성을 찾을 수 있습니다.
참고: |
---|
처리 명령 노드에 XmlReader를 배치하면 Value 속성은 전체 텍스트 내용을 반환합니다. 처리 명령 노드의 항목은 특성으로 간주되지 않으며 GetAttribute 또는 MoveToAttribute 메서드를 사용하여 읽을 수 없습니다. |
XML 선언 노드
XML 선언 노드에 버전, 독립 실행형 및 인코딩 정보가 배치될 경우 Value 속성은 이 정보를 단일 문자열로 반환합니다. 일부 판독기에서 버전, 인코딩 및 독립 실행형 정보를 특성으로 노출할 수도 있습니다.
참고: |
---|
Create 메서드로 생성된 XmlReader 개체, XmlTextReader 및 XmlValidatingReader 클래스는 버전, 독립 실행형 및 인코딩 항목을 특성으로 노출합니다. |
문서 형식 노드
문서 형식 노드에 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);