Freigeben über


XmlTextReader.ReadAttributeValue Methode

Definition

Analysiert den Attributwert in einen oder Textmehrere , EntityReferenceoder EndEntity Knoten.

public:
 override bool ReadAttributeValue();
public override bool ReadAttributeValue();
override this.ReadAttributeValue : unit -> bool
Public Overrides Function ReadAttributeValue () As Boolean

Gibt zurück

true wenn Knoten zurückgegeben werden sollen.

false wenn der Leser nicht auf einem Attributknoten positioniert ist, wenn der anfängliche Aufruf erfolgt oder alle Attributwerte gelesen wurden.

Ein leeres Attribut, z. B. , misc=""gibt true mit einem einzelnen Knoten mit einem Wert von String.Empty.

Beispiele

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

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
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>"
 
            Dim subset As String = "<!ENTITY h 'hardcover'>"
            ' Create the XmlParserContext.
            Dim context As 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($"{reader.NodeType} {reader.Name}")
                Else
                    Console.WriteLine($"{reader.NodeType} {reader.Value}")
                End If
            End While

        Finally 
            If reader IsNot Nothing
                reader.Close()
            End if
        End Try
    End Sub
End Class

Hinweise

Hinweis

Es wird empfohlen, XmlReader-Instanzen mithilfe der XmlReader.Create-Methode zu erstellen, um neue Funktionen zu nutzen.

Verwenden Sie diese Methode nach dem Aufrufen MoveToAttribute , um die Text- oder Entitätsverweisknoten zu lesen, die den Attributwert bilden. Die Depth Knoten des Attributwerts sind eins plus die Tiefe des Attributknotens. Er erhöht und erhöht nacheinander, wenn Sie in und aus allgemeinen Entitätsverweisen wechseln.

Gilt für:

Weitere Informationen