다음을 통해 공유


XmlReader.IsEmptyElement 속성

정의

파생 클래스에서 재정의되면 현재 노드가 <MyElement/>와 같은 빈 요소인지를 나타내는 값을 가져옵니다.

public:
 abstract property bool IsEmptyElement { bool get(); };
public abstract bool IsEmptyElement { get; }
member this.IsEmptyElement : bool
Public MustOverride ReadOnly Property IsEmptyElement As Boolean

속성 값

Boolean

true현재 노드가 로 />끝나는 요소(NodeTypeXmlNodeType.Element음)이면 이고, false그렇지 않으면 .

예외

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

예제

다음 예제에서는 각 요소의 텍스트 내용을 표시합니다.

while (reader.Read()) {
  if (reader.IsStartElement()) {
    if (reader.IsEmptyElement)
                {
                    Console.WriteLine("<{0}/>", reader.Name);
                }
                else {
      Console.Write("<{0}> ", reader.Name);
      reader.Read(); // Read the start tag.
      if (reader.IsStartElement())  // Handle nested elements.
        Console.Write("\r\n<{0}>", reader.Name);
      Console.WriteLine(reader.ReadString());  //Read the text content of the element.
    }
  }
}
While reader.Read()
  If reader.IsStartElement() Then
    If reader.IsEmptyElement Then
      Console.WriteLine("<{0}/>", reader.Name)
    Else
      Console.Write("<{0}> ", reader.Name)
      reader.Read() ' Read the start tag.
      If reader.IsStartElement() Then ' Handle nested elements.
        Console.Write(vbCr + vbLf + "<{0}>", reader.Name)
      End If
      Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
    End If
  End If
End While

이 예제에서는 파일을 elems.xml입력으로 사용합니다.

<book>
  <title>Pride And Prejudice</title>
  <price>19.95</price>
  <misc/>
</book>

설명

이 속성을 사용하여 다음 간의 차이를 확인할 수 있습니다.

<item num="123"/> (IsEmptyElement is true).

<item num="123"></item> (IsEmptyElement is false, 비록 요소 콘텐츠가 비어 있음).

빈 요소에 대해 해당 EndElement 노드가 생성되지 않습니다.

스키마 유효성 IsEmptyElement 검사로 인해 기본 콘텐츠가 요소에 추가된 경우 여전히 반환됩니다 true. 요소에 기본값이 있는지 여부에는 아무런 관련이 없습니다. 즉, IsEmptyElement 원본 문서의 요소에 끝 요소 태그가 있는지 여부를 보고하기만 하면 됩니다.

적용 대상