Freigeben über


XmlValidatingReader.IsEmptyElement-Eigenschaft

Ruft einen Wert ab, der angibt, ob der aktuelle Knoten ein leeres Element ist (z. B. <MyElement/>).

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Overrides ReadOnly Property IsEmptyElement As Boolean
'Usage
Dim instance As XmlValidatingReader
Dim value As Boolean

value = instance.IsEmptyElement
public override bool IsEmptyElement { get; }
public:
virtual property bool IsEmptyElement {
    bool get () override;
}
/** @property */
public boolean get_IsEmptyElement ()
public override function get IsEmptyElement () : boolean

Eigenschaftenwert

true, wenn der aktuelle Knoten ein Element ist (NodeType ist gleich XmlNodeType.Element), das mit /> endet, andernfalls false.

Hinweise

Hinweis

Die XmlValidatingReader-Klasse ist in Microsoft .NET Framework, Version 2.0 veraltet. Sie können eine Instanz eines validierenden XmlReader mithilfe der XmlReaderSettings-Klasse und der Create-Methode erstellen. Weitere Informationen finden Sie unter Validieren von XML-Daten mit "XmlReader".

Mit dieser Eigenschaft können Sie den Unterschied zwischen den folgenden Elementen bestimmen:

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

<item num="123"> (IsEmptyElement ist false obwohl das Element leer ist).

Für leere Elemente wird kein entsprechender EndElement-Knoten generiert.

Wenn aufgrund einer Schemavalidierung Standardinhalt zu einem Element hinzugefügt wurde, gibt IsEmptyElement trotzdem true zurück. Es hat keine Einfluss darauf, ob das Element über einen Standardwert verfügt. Das heißt, IsEmptyElement gibt lediglich an, ob das Element im Quelldokument über ein Endtag verfügt.

Beispiel

Im folgenden Beispiel wird der Textinhalt der einzelnen Elemente angezeigt.

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample
   
   Public Shared Sub Main()
      Dim txtreader As XmlTextReader = Nothing
      Dim reader As XmlValidatingReader = Nothing
      
      Try
         'Implement the readers.
         txtreader = New XmlTextReader("elems.xml")
         reader = New XmlValidatingReader(txtreader)
         
         'Parse the XML and display the text content of each of the elements.
         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())  'Handle nested elements.
                    Console.WriteLine()
                    Console.Write("<{0}>", reader.Name)
                  End If
                  Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
               End If
            End If
         End While      
      
      Finally
         If Not (reader Is Nothing) Then
            reader.Close()
         End If
      End Try
   End Sub 'Main 
End Class 'Sample
using System;
using System.IO;
using System.Xml;

public class Sample 
{
  public static void Main()
  {
    XmlTextReader txtreader = null;
    XmlValidatingReader reader = null;

    try
    {
       //Implement the readers.
       txtreader = new XmlTextReader("elems.xml");
       reader = new XmlValidatingReader(txtreader);
  
       //Parse the XML and display the text content of each of the elements.
       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.
           }
         }
       } 
       
     } 

     finally 
     {
        if (reader != null)
          reader.Close();
      }
  }
  
} // End class
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   XmlTextReader^ txtreader = nullptr;
   XmlValidatingReader^ reader = nullptr;
   try
   {
      
      //Implement the readers.
      txtreader = gcnew XmlTextReader( "elems.xml" );
      reader = gcnew XmlValidatingReader( txtreader );
      
      //Parse the XML and display the text content of each of the elements.
      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.
            }
         }
      }
   }
   finally
   {
      if ( reader != nullptr )
            reader->Close();
   }

}
import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    public static void main(String[] args)
    {
        XmlTextReader txtReader = null;
        XmlValidatingReader reader = null;

        try {
            //Implement the readers.
            txtReader = new XmlTextReader("elems.xml");
            reader = new XmlValidatingReader(txtReader);

            //Parse the XML and display the text content of
            // each of the elements.
            while (reader.Read()) {
                if (reader.IsStartElement()) {
                    if (reader.get_IsEmptyElement()) {
                        Console.WriteLine("<{0}/>", reader.get_Name());
                    }
                    else {
                        Console.Write("<{0}> ", reader.get_Name());
                        reader.Read(); //Read the start tag.
                        if (reader.IsStartElement()) {
                         //Handle nested elements.
                            Console.Write("\r\n<{0}>", reader.get_Name());
                        }
                        Console.WriteLine(reader.ReadString()); 
                        //Read the text content of the element.
                    }
                }
            }
        }
        finally {
            if (reader != null) {
                reader.Close();
            }
      }
    } //main
} // End class Sample

Im Beispiel wird die Datei elems.xml als Eingabe verwendet.

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

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

XmlValidatingReader-Klasse
XmlValidatingReader-Member
System.Xml-Namespace

Weitere Ressourcen

Lesen von XML mit dem "XmlReader"