XmlNodeReader.ReadAttributeValue Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Analizuje wartość atrybutu do co najmniej jednego Text
węzła , EntityReference
lub EndEntity
węzłów.
public:
override bool ReadAttributeValue();
public override bool ReadAttributeValue ();
override this.ReadAttributeValue : unit -> bool
Public Overrides Function ReadAttributeValue () As Boolean
Zwraca
true
jeśli istnieją węzły do zwrócenia.
false
jeśli czytnik nie jest umieszczony w węźle atrybutu po wywołaniu początkowym lub jeśli wszystkie wartości atrybutów zostały odczytane.
Pusty atrybut, taki jak misc=",
zwraca true
jeden węzeł z wartością String.Empty.
Przykłady
Poniższy przykład odczytuje atrybut z węzłami odwołania do tekstu i jednostki.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlNodeReader^ reader = nullptr;
try
{
//Create and load an XML document.
XmlDocument^ doc = gcnew XmlDocument;
doc->LoadXml( "<!DOCTYPE book [<!ENTITY h 'harcover'>]>"
"<book genre='novel' misc='sale-item &h; 1987'>"
"</book>" );
//Create the reader.
reader = gcnew 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 != nullptr )
reader->Close();
}
}
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
Uwagi
Uwaga
W .NET Framework 2.0 zalecaną praktyką jest utworzenie XmlReader wystąpień przy użyciu XmlReaderSettings klasy i Create metody. Dzięki temu można w pełni wykorzystać wszystkie nowe funkcje wprowadzone w .NET Framework. Aby uzyskać więcej informacji, zobacz sekcję Uwagi na stronie referencyjnej XmlReader .
Użyj tej metody po wywołaniu polecenia MoveToAttribute , aby odczytać za pośrednictwem węzłów odwołania do tekstu lub jednostki tworzących wartość atrybutu. Węzły Depth wartości atrybutu to jeden plus głębokość węzła atrybutu; zwiększa i zwiększa się o jeden, gdy przechodzisz do i z ogólnych odwołań do jednostki.