Sdílet prostřednictvím


XmlNodeReader.ReadAttributeValue Metoda

Definice

Parsuje hodnotu atributu do jednoho nebo více Text, EntityReferencenebo EndEntity uzlů.

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

Návraty

true pokud se mají vrátit uzly.

false pokud čtečka není umístěna na uzlu atributu při počátečním volání nebo pokud byly načteny všechny hodnoty atributů.

Prázdný atribut, například , misc=""vrátí true s jedním uzlem s hodnotou String.Empty.

Příklady

Následující příklad přečte atribut s textovými uzly a referenčními uzly entity.

using System;
using System.IO;
using System.Xml;

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

    try
    {
       //Create and load an XML document.
       XmlDocument doc = new XmlDocument();
       doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'harcover'>]>" +
                   "<book genre='novel' misc='sale-item &h; 1987'>" +
                   "</book>");

       //Create the reader.
       reader = new XmlNodeReader(doc);

       //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)
            //To expand the entity, call ResolveEntity.
            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
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        Dim reader As XmlNodeReader = Nothing
        
        Try
            'Create and load an XML document.
            Dim doc As New XmlDocument()
            doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'harcover'>]>" & _
                        "<book genre='novel' misc='sale-item &h; 1987'>" & _
                        "</book>")
            
            'Create the reader. 
            reader = New XmlNodeReader(doc)
            
            '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 Then
                    'To expand the entity, call ResolveEntity.
                    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) Then
                reader.Close()
            End If
        End Try
    End Sub
End Class

Poznámky

Poznámka:

Pokud chcete využívat novější funkce, doporučeným postupem je vytvoření XmlReader instancí pomocí XmlReaderSettings třídy a Create metody. Další informace najdete v části Poznámky na XmlReader referenční stránce.

Tuto metodu použijte po volání MoveToAttribute k přečtení textových nebo referenčních uzlů entity, které tvoří hodnotu atributu. Uzly Depth hodnot atributu jsou jeden a hloubka uzlu atributu; při kroku do a z obecných odkazů na entity se zvýší a sníží o jeden.

Platí pro