XmlTextReader.ReadAttributeValue Methode

Definitie

Parseert de kenmerkwaarde in een of meer Text, EntityReferenceof EndEntity knooppunten.

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

Retouren

true als er knooppunten zijn die moeten worden geretourneerd.

false als de lezer niet is geplaatst op een kenmerkknooppunt wanneer de eerste aanroep wordt uitgevoerd of als alle kenmerkwaarden zijn gelezen.

Een leeg kenmerk, zoals, misc=""retourneert true met één knooppunt met een waarde van String.Empty.

Voorbeelden

In het volgende voorbeeld wordt een kenmerk gelezen met tekst- en entiteitsknooppunten.

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

Opmerkingen

Note

Wij raden aan dat u XmlReader instanties maakt met behulp van de XmlReader.Create methode om te profiteren van nieuwe functionaliteiten.

Gebruik deze methode na het aanroepen MoveToAttribute om de tekst- of entiteitsreferentieknooppunten te lezen waaruit de kenmerkwaarde bestaat. De Depth knooppunten van de kenmerkwaarde zijn één plus de diepte van het kenmerkknooppunt. Het wordt verhoogd en afgenomen door één wanneer u in en uit algemene entiteitsverwijzingen stapt.

Van toepassing op

Zie ook