XmlNodeReader.ReadAttributeValue メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
属性値を 1 つ以上の Text、 EntityReference、または EndEntity ノードに解析します。
public:
override bool ReadAttributeValue();
public override bool ReadAttributeValue();
override this.ReadAttributeValue : unit -> bool
Public Overrides Function ReadAttributeValue () As Boolean
返品
true 返すノードがある場合は 。
false 最初の呼び出しが行われたときにリーダーが属性ノードに配置されていない場合、またはすべての属性値が読み取られた場合。
misc=""などの空の属性は、String.Empty の値を持つ単一のノードを持つtrueを返します。
例
次の例では、テキストノードとエンティティ参照ノードを持つ属性を読み取ります。
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
注釈
Note
新しい機能を利用するには、XmlReader クラスと XmlReaderSettings メソッドを使用してCreate インスタンスを作成することをお勧めします。 詳細については、「 XmlReader リファレンス」ページの「解説」セクションを参照してください。
このメソッドは、 MoveToAttribute を呼び出して、属性値を構成するテキストまたはエンティティ参照ノードを読み取った後に使用します。 属性値ノードの Depth は、属性ノードの深さを加算したもので、一般的なエンティティ参照にステップ インおよびステップ アウトするときに 1 ずつインクリメントおよびデクリメントされます。