??각 노드의 유형은 XmlNodeType 열거형 중 하나입니다. 그림 3에 표시된 코드에서는 Element와 EndElement라는 두 가지 열거형만 사용합니다. 출력 소스 코드는 원래 문서 구조를 다시 사용자 정의합니다. XML 요소의 속성과 노드 콘텐츠를 무시하거나 요소 노드 이름만 출력합니다. 다음 XML 조각을 적용한다고 가정합니다.
??
??
??MSDN Magazine
??
??
??MSDN Voices
??
??
??위 프로그램을 사용하여 출력한 결과
??
??
??
??
??
??
??자식 노드의 들여쓰기 양은 브라우저의 깊이 속성(Depth 속성)에 따라 설정됩니다. Depth 속성은 중첩을 나타내는 정수 데이터를 반환합니다. 현재 노드 레벨의 모든 텍스트는 StringWriter 개체(StrigBuilder 클래스 주변의 매우 편리한 스트림 기반 래퍼)에 배치됩니다.
?? 앞서 언급했듯이 브라우저는 Read 메서드를 통해 속성 노드에 자동으로 액세스하지 않습니다. 현재 요소의 특성 노드 컬렉션에 액세스하려면 MoveToNextAttribute 메서드의 반환 값으로 제어되는 간단한 루프를 사용하여 컬렉션을 탐색해야 합니다. 다음 코드는 현재 노드의 모든 속성에 액세스하고 속성 이름과 해당 값을 쉼표로 구분된 문자열로 결합하는 데 사용됩니다.
??if (reader.HasAttributes)
??while(reader.MoveToNextAttribute( ))
??buf = reader.Name '='' reader.Value '',';
??reader.MoveToElement()
??속성 작업이 완료되면 세트를 처리할 때 MoveToElement 메서드를 호출하여 속성이 속한 요소 노드에 대한 포인터를 반환합니다. 정확하게 말하면 MoveToElement 메서드는 실제로 포인터를 이동하지 않습니다. 왜냐하면 포인터는 속성 세트를 처리할 때 요소 노드에서 절대 이동하지 않기 때문입니다. MoveToElement 메서드는 내부 멤버를 가리키고 차례로 멤버의 값을 가져옵니다. 예를 들어 Name 특성을 사용하여 특성의 특성 이름을 얻은 다음 MoveToElement 메서드를 호출하여 해당 특성이 속한 요소 노드로 포인터를 이동합니다. 그러나 다른 노드를 계속 처리할 필요가 없으면 MoveToElement 메서드를 호출할 필요가 없습니다.
위 내용은 .NET Framework에서 XML 데이터를 쉽게 처리하는 내용(1~3)이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.kr)를 참고하시기 바랍니다. .php.cn) !