属性値を解析して、1 つ以上の Text、 EntityReference 、または EndEntity の各ノードに格納します。
Overrides Public Function ReadAttributeValue() As Boolean
[C#]
public override bool ReadAttributeValue();
[C++]
public: bool ReadAttributeValue();
[JScript]
public override function ReadAttributeValue() : Boolean;
戻り値
返すノードがある場合は true 。
初めて呼び出すときにリーダーの位置が属性ノード上にない場合、またはすべての属性値が読み込まれている場合は、 false 。
misc=""
などの空の属性は、値 String.Empty を持つ単一のノードと一緒に true を返します。
解説
MoveToAttribute を呼び出した後、このメソッドを使用して、属性値を構成するテキスト ノードまたはエンティティ参照ノードを読み取ります。属性値ノードの Depth は、属性ノードの深さに 1 を加えた値です。一般エンティティ参照に出入りするとき、それぞれ 1 つずつ増減します。
使用例
[Visual Basic, C#, C++] テキスト ノードおよびエンティティ参照ノードを持つ属性を読み取る例を次に示します。
Option Explicit
Option Strict
Imports System
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 'Main
End Class 'Sample
[C#]
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
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlNodeReader* reader = 0;
try
{
//Create and load an XML document.
XmlDocument* doc = new XmlDocument();
doc->LoadXml(S"<!DOCTYPE book [<!ENTITY h 'harcover'>]>"
S"<book genre='novel' misc='sale-item &h; 1987'>"
S"</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(S"misc");
while (reader->ReadAttributeValue()){
if (reader->NodeType==XmlNodeType::EntityReference)
//To expand the entity, call ResolveEntity.
Console::WriteLine(S"{0} {1}", __box(reader->NodeType),reader->Name);
else
Console::WriteLine(S"{0} {1}", __box(reader->NodeType),reader->Value);
}
}
__finally
{
if (reader != 0)
reader->Close();
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET