Freigeben über


XmlTextReader.ReadAttributeValue-Methode

Löst den Attributwert in einen oder mehrere Text-Knoten, EntityReference-Knoten oder EndEntity-Knoten auf.

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

Syntax

'Declaration
Public Overrides Function ReadAttributeValue As Boolean
'Usage
Dim instance As XmlTextReader
Dim returnValue As Boolean

returnValue = instance.ReadAttributeValue
public override bool ReadAttributeValue ()
public:
virtual bool ReadAttributeValue () override
public boolean ReadAttributeValue ()
public override function ReadAttributeValue () : boolean

Rückgabewert

true, wenn zurückzugebende Knoten vorhanden sind. false, wenn der Reader beim ersten Aufruf nicht auf einem Atttributknoten positioniert ist oder alle Attributwerte gelesen wurden. Ein leeres Attribut, z. B. misc="", gibt true mit einem einzelnen Knoten mit dem Wert String.Empty zurück.

Hinweise

Hinweis

Die empfohlene Vorgehensweise für die Version Microsoft .NET Framework, Version 2.0 besteht darin, mithilfe der System.Xml.XmlReader.Create-Methode XmlReader-Instanzen zu erstellen. So können Sie die neuen Features dieser Version in vollem Umfang nutzen. Weitere Informationen finden Sie unter Erstellen von XML-Readern.

Verwenden Sie diese Methode, um nach dem Aufruf von MoveToAttribute den Text oder die Entitätsverweisknoten zu lesen, aus den der Attributwert besteht. Die Depth der Attributwertknoten ist eins plus der Tiefe des Attributknotens. Dieser Wert wird beim Einsprung bzw. beim Verlassen allgemeiner Entitätsverweise um eins inkrementiert bzw. dekrementiert.

Beispiel

Im folgenden Beispiel wird ein Attribut mit Text und Entitätsknoten gelesen.

Imports System
Imports System.IO
Imports System.Xml

public class Sample

  public shared sub Main()

    Dim reader as XmlTextReader = nothing

    try
       'Create the XML fragment to be parsed.
       Dim xmlFrag as string ="<book genre='novel' misc='sale-item &h; 1987'></book>"
 
       'Create the XmlParserContext.
       Dim context as XmlParserContext 
       Dim subset as string = "<!ENTITY h 'hardcover'>"
       context = new XmlParserContext(nothing, nothing, "book", nothing, nothing, subset, "", "", XmlSpace.None)
        
       'Create the reader.
       reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
  
       'Read the misc attribute. The attribute is parsed
       'into multiple text and entity reference nodes.
       reader.MoveToContent()
       reader.MoveToAttribute("misc")
       while (reader.ReadAttributeValue())
          if (reader.NodeType = XmlNodeType.EntityReference)
            Console.WriteLine("{0} {1}", reader.NodeType, reader.Name)
          else
             Console.WriteLine("{0} {1}", reader.NodeType, reader.Value)
          end if
        end while

     finally 
       if Not reader Is Nothing
        reader.Close()
      End if
      end try
  end sub
end class 
using System;
using System.IO;
using System.Xml;

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

    try
    {
       //Create the XML fragment to be parsed.
       string xmlFrag ="<book genre='novel' misc='sale-item &h; 1987'></book>";
 
       //Create the XmlParserContext.
       XmlParserContext context;
       string subset = "<!ENTITY h 'hardcover'>";
       context = new XmlParserContext(null, null, "book", null, null, subset, "", "", XmlSpace.None);
        
       //Create the reader.
       reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
  
       //Read the misc attribute. The attribute is parsed
       //into multiple text and entity reference nodes.
       reader.MoveToContent();
       reader.MoveToAttribute("misc");
       while (reader.ReadAttributeValue()){
          if (reader.NodeType==XmlNodeType.EntityReference)
            Console.WriteLine("{0} {1}", reader.NodeType, reader.Name);
          else
             Console.WriteLine("{0} {1}", reader.NodeType, reader.Value);
        } 
     } 
     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^ reader = nullptr;
   __try
   {
      
      // Create the XML fragment to be parsed.
      String^ xmlFrag = "<book genre='novel' misc='sale-item &h; 1987'></book>";
      
      // Create the XmlParserContext.
      XmlParserContext^ context;
      String^ subset = "<!ENTITY h 'hardcover'>";
      context = gcnew XmlParserContext( nullptr,nullptr,"book",nullptr,nullptr,subset,"","",XmlSpace::None );
      
      // Create the reader.
      reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
      
      // Read the misc attribute. The attribute is parsed
      // into multiple text and entity reference nodes.
      reader->MoveToContent();
      reader->MoveToAttribute( "misc" );
      while ( reader->ReadAttributeValue() )
      {
         if ( reader->NodeType == XmlNodeType::EntityReference )
                  Console::WriteLine( " {0} {1}", reader->NodeType, reader->Name );
         else
                  Console::WriteLine( " {0} {1}", reader->NodeType, reader->Value );
      }
   }
   __finally
   {
      if ( reader != nullptr )
            reader->Close();
   }

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

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

        try {
            //Create the XML fragment to be parsed.
            String xmlFrag = "<book genre='novel' misc='sale-item &h; 1987'>" 
                + "</book>";
            //Create the XmlParserContext.
            XmlParserContext context;
            String subset = "<!ENTITY h 'hardcover'>";
            context = new XmlParserContext(null, null, "book", null, null, 
                subset, "", "", XmlSpace.None);
            //Create the reader.
            reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
            //Read the misc attribute. The attribute is parsed
            //into multiple text and entity reference nodes.
            reader.MoveToContent();
            reader.MoveToAttribute("misc");
            while (reader.ReadAttributeValue()) {
                if (reader.get_NodeType().Equals(XmlNodeType.EntityReference)) {
                    Console.WriteLine("{0} {1}", reader.get_NodeType(), reader.
                    get_Name());
                }
                else {
                    Console.WriteLine("{0} {1}", reader.get_NodeType(),
                        reader.get_Value());
                }
            }
        }
        finally {
            if (reader != null) {
                reader.Close();
            }
        }
    } //main
} //End class Sample 

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlTextReader-Klasse
XmlTextReader-Member
System.Xml-Namespace

Weitere Ressourcen

Lesen von XML mit dem "XmlReader"