XmlReader.MoveToContent 메서드

정의

현재 노드가 콘텐츠 노드(공백 없는 텍스트, CDATA, Element, EndElement, EntityReference 또는 EndEntity)인지 여부를 확인합니다. 해당 노드가 콘텐츠 노드가 아니면 판독기는 다음 콘텐츠 노드나 파일의 끝으로 건너뜁니다. 판독기는 ProcessingInstruction, DocumentType, Comment, Whitespace 또는 SignificantWhitespace 같은 형식의 노드를 건너뜁니다.

public:
 virtual System::Xml::XmlNodeType MoveToContent();
public virtual System.Xml.XmlNodeType MoveToContent ();
abstract member MoveToContent : unit -> System.Xml.XmlNodeType
override this.MoveToContent : unit -> System.Xml.XmlNodeType
Public Overridable Function MoveToContent () As XmlNodeType

반환

XmlNodeType

메서드를 사용하여 찾은 현재 노드의 NodeType이거나 판독기가 입력 스트림의 끝에 도달한 경우에는 XmlNodeType.None입니다.

예외

입력 스트림에 잘못된 XML이 있는 경우

이전 비동기 작업이 완료되기 전에 XmlReader 메서드가 호출되었습니다. 이 경우 “비동기 작업이 이미 진행 중입니다.” 메시지를 나타내며 InvalidOperationException이 throw됩니다.

예제

이 기능은 중단 없이 임의의 XML 태그를 건너뛸 수 있는 코드를 작성하려는 경우에 유용합니다. 예를 들어 다음과 같은 코드가 있다고 가정하겠습니다.

if ( reader->MoveToContent() == XmlNodeType::Element &&
   reader->Name->Equals( "price" ) )
{
   _price = reader->ReadString();
}
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "price")
 {
    _price = reader.ReadString();
 }
If reader.MoveToContent() = XmlNodeType.Element And reader.Name = "price" Then
    _price = reader.ReadString()
End If

이 코드는 중단 없이 다음 입력을 처리할 수 있습니다.

<price>123.4</price>

그리고

<?xml version="1.0"><!DOCTYPE price SYSTEM
  "abc"><price>123.4</price>

그리고

<?xml version="1.0"><!DOCTYPE price SYSTEM "abc"
  [<!ENTITY p
  "123.4">]><price>&p;</price>

그리고

<!-- some test comment --><?processing
  instruction?><price>123.4</price>

설명

현재 노드가 특성 노드인 경우 이 메서드는 판독기를 특성을 소유하는 요소로 다시 이동합니다.

이 메서드의 비동기 버전은 다음을 참조하세요 MoveToContentAsync.

적용 대상