XmlTextReader.ReadAttributeValue Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Parsar attributvärdet till en eller flera Text, EntityReferenceeller EndEntity noder.
public:
override bool ReadAttributeValue();
public override bool ReadAttributeValue();
override this.ReadAttributeValue : unit -> bool
Public Overrides Function ReadAttributeValue () As Boolean
Returer
true om det finns noder att returnera.
false om läsaren inte är placerad på en attributnod när det första anropet görs eller om alla attributvärden har lästs.
Ett tomt attribut, till exempel , misc=""returnerar true med en enskild nod med värdet String.Empty.
Exempel
I följande exempel läss ett attribut med text- och entitetsnoder.
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
Kommentarer
Note
Vi rekommenderar att du skapar XmlReader instanser genom att använda XmlReader.Create metoden för att dra nytta av nya funktioner.
Använd den här metoden när du har anropat MoveToAttribute för att läsa igenom text- eller entitetsreferensnoderna som utgör attributvärdet. Attributets Depth värdenoder är ett plus djupet för attributnoden. Den ökar och minskar med en när du går in i och ut ur allmänna entitetsreferenser.