XmlNodeReader.ReadAttributeValue Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Analiza el valor del atributo en uno o varios Textnodos , EntityReferenceo EndEntity .
public:
override bool ReadAttributeValue();
public override bool ReadAttributeValue();
override this.ReadAttributeValue : unit -> bool
Public Overrides Function ReadAttributeValue () As Boolean
Devoluciones
true si hay nodos que se van a devolver.
false si el lector no está colocado en un nodo de atributo cuando se realiza la llamada inicial o si se han leído todos los valores de atributo.
Un atributo vacío, como , misc=""devuelve true con un único nodo con un valor de String.Empty.
Ejemplos
En el ejemplo siguiente se lee un atributo con nodos de referencia de texto y entidad.
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
Comentarios
Note
Para aprovechar las características más recientes, la práctica recomendada es crear XmlReader instancias mediante la XmlReaderSettings clase y el Create método . Para obtener más información, vea la sección Comentarios de la página de XmlReader referencia.
Use este método después de llamar MoveToAttribute a para leer los nodos de referencia de texto o entidad que componen el valor del atributo. El Depth de los nodos de valor de atributo es uno más la profundidad del nodo de atributo; incrementa y disminuye en uno cuando se introducen y salen de las referencias de entidad generales.