XmlReader XmlReader XmlReader XmlReader Class

定義

XML データへの高速で非キャッシュの前方向アクセスを提供するリーダーを表します。Represents a reader that provides fast, noncached, forward-only access to XML data.

public ref class XmlReader abstract : IDisposable
public abstract class XmlReader : IDisposable
type XmlReader = class
    interface IDisposable
Public MustInherit Class XmlReader
Implements IDisposable
継承
XmlReaderXmlReaderXmlReaderXmlReader
派生
実装

次のコード例では、非同期 API を使用して XML を解析する方法を示します。The following example code shows how to use the asynchronous API to parse XML.

async Task TestReader(System.IO.Stream stream)
{
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Async = true;

    using (XmlReader reader = XmlReader.Create(stream, settings))
    {
        while (await reader.ReadAsync())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("Start Element {0}", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine("Text Node: {0}",
                             await reader.GetValueAsync());
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("End Element {0}", reader.Name);
                    break;
                default:
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value);
                    break;
            }
        }
    }
}
Public Async Function TestReader(stream As System.IO.Stream) As Task
    Dim settings As New XmlReaderSettings()
    settings.Async = True

    Using reader As XmlReader = XmlReader.Create(stream, settings)
        While (Await reader.ReadAsync())
            Select Case (reader.NodeType)
                Case XmlNodeType.Element
                    Console.WriteLine("Start Element {0}", reader.Name)
                Case XmlNodeType.Text
                    Console.WriteLine("Text Node: {0}",
                             Await reader.GetValueAsync())
                Case XmlNodeType.EndElement
                    Console.WriteLine("End Element {0}", reader.Name)
                Case Else
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value)
            End Select
        End While
    End Using
End Function

注釈

XmlReader ドキュメントまたはストリームに XML データへの前方参照専用、読み取り専用のアクセスを提供します。XmlReader provides forward-only, read-only access to XML data in a document or stream. このクラスは、W3C に準拠しているExtensible Markup Language (XML) 1.0 (fourth edition)Namespaces in XML 1.0 (第 3 版)の推奨事項。This class conforms to the W3C Extensible Markup Language (XML) 1.0 (fourth edition) and the Namespaces in XML 1.0 (third edition) recommendations.

XmlReader メソッドを使用すると、XML データを移動して、ノードの内容を読み取ることができます。XmlReader methods let you move through XML data and read the contents of a node. クラスのプロパティには、リーダーが配置されているは、現在のノードの値が反映されます。ReadStateプロパティの値が XML リーダーの現在の状態を示します。The properties of the class reflect the value of the current node, which is where the reader is positioned.The ReadState property value indicates the current state of the XML reader. プロパティを設定するなど、ReadState.Initialによって、XmlReader.ReadメソッドとReadState.Closedによって、XmlReader.Closeメソッド。For example, the property is set to ReadState.Initial by the XmlReader.Read method and ReadState.Closed by the XmlReader.Close method. XmlReader また、データ一致チェックし、DTD またはスキーマに対する検証を提供します。XmlReader also provides data conformance checks and validation against a DTD or schema.

XmlReader プル モデルを使用して、データを取得します。XmlReader uses a pull model to retrieve data. このモデルには:This model:

  • 自然で、上から下への洗練された手続きによって状態管理を簡略化します。Simplifies state management by a natural, top-down procedural refinement.

  • 複数の入力ストリームと階層化をサポートしています。Supports multiple input streams and layering.

  • クライアントで先文字列が直接書き込まれ、そのため、余分な文字列コピーの必要があるバッファー パーサーを提供できるようにします。Enables the client to give the parser a buffer into which the string is directly written, and thus avoids the necessity of an extra string copy.

  • 選択的な処理をサポートしています。Supports selective processing. クライアントでは、項目をスキップでき、アプリケーションに関心のあるものを処理することができます。The client can skip items and process those that are of interest to the application. (たとえば、"正規化")、XML ストリームを処理する方法を管理するには、事前にプロパティを設定することもできます。You can also set properties in advance to manage how the XML stream is processed (for example, normalization).

このセクションの内容:In this section:

XML リーダーを作成します。 Creating an XML reader
XML データの検証 Validating XML data
データの一致 Data conformance
ノード間を移動します。 Navigating through nodes
読み取る XML 要素 Reading XML elements
読み取る XML 属性 Reading XML attributes
読み取る XML コンテンツ Reading XML content
CLR 型への変換 Converting to CLR types
非同期プログラミング Asynchronous programming
セキュリティに関する考慮事項Security considerations

XML リーダーを作成します。Creating an XML reader

使用して、Createを作成する方法、XmlReaderインスタンス。Use the Create method to create an XmlReader instance.

.NET Framework の具象実装を提供しますが、XmlReaderクラスなど、 XmlTextReaderXmlNodeReader、およびXmlValidatingReaderクラス、お勧めします特化されたクラスは、これらのシナリオでのみ使用すること。Although the .NET Framework provides concrete implementations of the XmlReader class, such as the XmlTextReader, XmlNodeReader, and the XmlValidatingReader classes, we recommend that you use the specialized classes only in these scenarios:

  • XML DOM サブツリーを読みたい場合、XmlNodeオブジェクトを使用して、XmlNodeReaderクラス。When you want to read an XML DOM subtree from an XmlNode object, use the XmlNodeReader class. (ただし、このクラスはサポート DTD またはスキーマの検証)。(However, this class doesn't support DTD or schema validation.)

  • 要求のエンティティを展開する必要があります、したくない、テキスト コンテンツ、正規化、または既定の返される属性を使用したくない場合、XmlTextReaderクラス。If you must expand entities on request, you don't want your text content normalized, or you don't want default attributes returned, use the XmlTextReader class.

XML リーダーに有効に機能のセットを指定するには、渡す、System.Xml.XmlReaderSettingsオブジェクトをCreateメソッド。To specify the set of features you want to enable on the XML reader, pass an System.Xml.XmlReaderSettings object to the Create method. 1 つを使用するSystem.Xml.XmlReaderSettingsオブジェクトを同じ機能を持つ複数のリーダーを作成または変更、System.Xml.XmlReaderSettings異なる一連の機能で、新しいリーダーを作成するオブジェクト。You can use a single System.Xml.XmlReaderSettings object to create multiple readers with the same functionality, or modify the System.Xml.XmlReaderSettings object to create a new reader with a different set of features. 既存のリーダーに機能を追加することも簡単にできます。You can also easily add features to an existing reader.

使用しない場合、System.Xml.XmlReaderSettingsオブジェクト、既定の設定を使用します。If you don't use a System.Xml.XmlReaderSettings object, default settings are used. 参照してください、Create詳細ページを参照します。See the Create reference page for details.

XmlReader スローされます、 XmlException XML の解析エラー。XmlReader throws an XmlException on XML parse errors. 例外がスローされた後、リーダーの状態は予測できません。After an exception is thrown, the state of the reader is not predictable. たとえば、報告されたノード型は、現在のノードの実際のノード型と異なる可能性があります。For example, the reported node type may be different from the actual node type of the current node. 使用して、ReadStateリーダーがエラー状態であるかどうかを確認するプロパティ。Use the ReadState property to check whether the reader is in error state.

XML データの検証Validating XML data

XML ドキュメントとその要素間のリレーションシップ、データ型、および内容の制約の構造を定義するには、ドキュメント型定義 (DTD) または XML スキーマ定義言語 (XSD) スキーマを使用します。To define the structure of an XML document and its element relationships, data types, and content constraints, you use a document type definition (DTD) or XML Schema definition language (XSD) schema. XML ドキュメントと見なされますによって定義されているすべての構文要件を満たしている場合は正しい形式で、 W3C 勧告 『 XML 1.0します。An XML document is considered to be well formed if it meets all the syntactical requirements defined by the W3C XML 1.0 Recommendation. 整形式では、DTD またはスキーマで定義されている制約にも準拠している場合は有効になっています。It's considered valid if it's well formed and also conforms to the constraints defined by its DTD or schema. (を参照してください、 W3C XML Schema Part 1。構造体W3C XML Schema Part 2。データ型の推奨事項)。したがって、有効な XML ドキュメントはすべて整形式ですが、整形式の XML ドキュメントがすべて有効であるとは限りません。(See the W3C XML Schema Part 1: Structures and the W3C XML Schema Part 2: Datatypes recommendations.) Therefore, although all valid XML documents are well formed, not all well-formed XML documents are valid.

DTD では、インライン XSD スキーマに対してデータを検証するかに格納されている XSD スキーマ、XmlSchemaSetオブジェクト (キャッシュ)。 これらのシナリオについては、Createリファレンス ページ。You can validate the data against a DTD, an inline XSD Schema, or an XSD Schema stored in an XmlSchemaSet object (a cache); these scenarios are described on the Create reference page. XmlReader Xml-data Reduced (XDR) スキーマ検証をサポートしていません。XmlReader doesn't support XML-Data Reduced (XDR) schema validation.

次の設定を使用して、XmlReaderSettings存在する場合、検証の種類を指定するクラス、XmlReaderインスタンスがサポートされます。You use the following settings on the XmlReaderSettings class to specify what type of validation, if any, the XmlReader instance supports.

これを使用して、XmlReaderSettingsメンバーUse this XmlReaderSettings member 指定する型To specify
DtdProcessing プロパティDtdProcessing property DTD 処理を許可するかどうか。Whether to allow DTD processing. 既定では、DTD 処理は許可されません。The default is to disallow DTD processing.
ValidationType プロパティValidationType property リーダーが、データを検証するかどうかと (DTD またはスキーマ) を実行する検証の種類。Whether the reader should validate data, and what type of validation to perform (DTD or schema). 既定では、データ検証は実行されません。The default is no data validation.
ValidationEventHandler イベントValidationEventHandler event 検証イベントに関する情報を受信するためのイベント ハンドラー。An event handler for receiving information about validation events. イベント ハンドラーが提供されていない場合は、最初の検証エラーに対して XmlException がスローされます。If an event handler is not provided, an XmlException is thrown on the first validation error.
ValidationFlags プロパティValidationFlags property 追加の検証オプション で、XmlSchemaValidationFlags列挙型メンバー。Additional validation options through the XmlSchemaValidationFlags enumeration members:

- AllowXmlAttributes-XML 属性を許可する (xml:*) スキーマで定義しない場合でも、インスタンス ドキュメントにします。- AllowXmlAttributes-- Allow XML attributes (xml:*) in instance documents even when they're not defined in the schema. これらの属性は、それらのデータ型に基づいて検証されます。The attributes are validated based on their data type. 参照してください、XmlSchemaValidationFlags特定のシナリオで使用する設定のリファレンス ページです。See the XmlSchemaValidationFlags reference page for the setting to use in specific scenarios. (既定で無効)(Disabled by default.)
- ProcessIdentityConstraints -Id 制約を処理する (xs:IDxs:IDREFxs:keyxs:keyrefxs:unique) の検証中に発生します。- ProcessIdentityConstraints --Process identity constraints (xs:ID, xs:IDREF, xs:key, xs:keyref, xs:unique) encountered during validation. (既定で有効になっている)。(Enabled by default.)
- ProcessSchemaLocation --によって指定されたスキーマを処理する、xsi:schemaLocationまたはxsi:noNamespaceSchemaLocation属性。- ProcessSchemaLocation --Process schemas specified by the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute. (既定で有効になっている)。(Enabled by default.)
- ProcessInlineSchema-検証中にインライン XML スキーマを処理します。- ProcessInlineSchema-- Process inline XML Schemas during validation. (既定で無効)(Disabled by default.)
- ReportValidationWarnings-検証の警告が発生した場合は、イベントを報告します。- ReportValidationWarnings--Report events if a validation warning occurs. 警告は通常、特定の要素または属性を検証するための DTD または XML スキーマがない場合に発行されます。A warning is typically issued when there is no DTD or XML Schema to validate a particular element or attribute against. 通知には ValidationEventHandler が使用されます。The ValidationEventHandler is used for notification. (既定で無効)(Disabled by default.)
Schemas 検証に使用する XmlSchemaSetThe XmlSchemaSet to use for validation.
XmlResolver プロパティXmlResolver property XmlResolverを解決すると、外部のリソースにアクセスします。The XmlResolver for resolving and accessing external resources. DTD とスキーマ、およびそのいずれかなどの外部のエンティティを含めることができますこのxs:includeまたはxs:importXML スキーマに含まれる要素。This can include external entities such as DTD and schemas, and any xs:include or xs:import elements contained in the XML Schema. 指定しない場合、 XmlResolverXmlReader 、既定値を使用してXmlUrlResolverをユーザーの資格情報なし。If you don't specify an XmlResolver, the XmlReader uses a default XmlUrlResolver with no user credentials.

データの一致Data conformance

XML リーダーによって作成される、Createメソッドは、既定では、次のコンプライアンス要件を満たします。XML readers that are created by the Create method meet the following compliance requirements by default:

  • 新しい行と属性の値は、W3C に従って正規化されますXML 1.0 勧告します。New lines and attribute value are normalized according to the W3C XML 1.0 Recommendation.

  • すべてのエンティティは自動的に展開します。All entities are automatically expanded.

  • ドキュメント型定義で宣言されている既定の属性は、リーダーを検証しない場合でも常に追加します。Default attributes declared in the document type definition are always added even when the reader doesn't validate.

  • 適切な XML 名前空間 URI に割り当てられた XML プレフィックスの宣言が許可されています。Declaration of XML prefix mapped to the correct XML namespace URI is allowed.

  • 1 つの表記名NotationType属性宣言とNmTokens1 つのEnumeration属性宣言は異なります。The notation names in a single NotationType attribute declaration and NmTokens in a single Enumeration attribute declaration are distinct.

これらを使用して、XmlReaderSettings準拠の型をチェックするように指定するプロパティが有効にします。Use these XmlReaderSettings properties to specify the type of conformance checks you want to enable:

これを使用して、XmlReaderSettingsプロパティUse this XmlReaderSettings property 終了To 既定値Default
CheckCharacters プロパティCheckCharacters property 有効または無効には、次を確認します。Enable or disable checks for the following:

定義されている文字が、有効な XML 文字の範囲内では、 2.2 文字W3C XML 1.0 勧告のセクション。- Characters are within the range of legal XML characters, as defined by the 2.2 Characters section of the W3C XML 1.0 Recommendation.
-定義されているすべての XML 名が有効では、 2.3 Common Syntactic Constructs W3C XML 1.0 勧告のセクション。- All XML names are valid, as defined by the 2.3 Common Syntactic Constructs section of the W3C XML 1.0 Recommendation.

このプロパティを設定するとtrue(既定値)、 XmlException XML ファイルには、無効な文字または無効な XML 名が含まれている場合、例外がスローされます (たとえば、要素名を数字で始まる)。When this property is set to true (default), an XmlException exception is thrown if the XML file contains illegal characters or invalid XML names (for example, an element name starts with a number).
文字と名前の確認が有効になっています。Character and name checking is enabled.

CheckCharactersfalse に設定すると、文字エンティティ参照に対する文字のチェック機能がオフになります。Setting CheckCharacters to false turns off character checking for character entity references. リーダーがテキスト データを処理する場合は、常に XML 名がこの設定に関係なく、有効である確認します。If the reader is processing text data, it always checks that XML names are valid, regardless of this setting. 注: XML 1.0 勧告では、DTD がある場合にはドキュメント レベルの一致が必要です。Note: The XML 1.0 recommendation requires document-level conformance when a DTD is present. そのため、リーダーがサポートするために構成されている場合ConformanceLevel.Fragment、XML データには、ドキュメント型定義 (DTD) が含まれていますが、XmlExceptionがスローされます。Therefore, if the reader is configured to support ConformanceLevel.Fragment, but the XML data contains a document type definition (DTD), an XmlException is thrown.
ConformanceLevel プロパティConformanceLevel property 適用する準拠のレベルを選択します。Choose the level of conformance to enforce:

- Document- Document. 規則に準拠している、整形式 XML 1.0 ドキュメントします。Conforms to the rules for a well-formed XML 1.0 document.
- Fragment- Fragment. として使用できる整形式ドキュメント フラグメントの規則に準拠している、外部解析エンティティします。Conforms to the rules for a well-formed document fragment that can be consumed as an external parsed entity.
- Auto- Auto. リーダーによって決まりますレベルに準拠しています。Conforms to the level decided by the reader.

データに準拠していない場合、XmlException例外がスローされます。If the data isn't in conformance, an XmlException exception is thrown.
Document

現在のノードでは、XML リーダーが現在置かれている XML ノードです。The current node is the XML node on which the XML reader is currently positioned. すべてXmlReaderメソッドと、このノードとすべての関連の操作を実行するXmlReaderプロパティには、現在のノードの値が反映されます。All XmlReader methods perform operations in relation to this node, and all XmlReader properties reflect the value of the current node.

次のメソッドでは、ノード間を移動し、データの解析が発生しやすいようにします。The following methods make it easy to navigate through nodes and parse data.

これを使用して、XmlReaderSettingsメソッドUse this XmlReaderSettings method 終了To
Read 最初のノードを読み取るし、一度に 1 つのノードをストリームに進みます。Read the first node, and advance through the stream one node at a time. このような呼び出しは、通常、内部で実行、whileループします。Such calls are typically performed inside a while loop.

使用して、NodeTypeプロパティを現在のノードの種類 (たとえば、属性、コメント、要素、およびなど) を取得します。Use the NodeType property to get the type (for example, attribute, comment, element, and so on) of the current node.
Skip 現在のノードの子をスキップし、次のノードに移動します。Skip the children of the current node and move to the next node.
MoveToContent および MoveToContentAsyncMoveToContent and MoveToContentAsync 非コンテンツ ノードをスキップし、次のコンテンツ ノードまたはファイルの末尾に移動します。Skip non-content nodes and move to the next content node or to the end of the file.

非コンテンツ ノードを含めるProcessingInstructionDocumentTypeCommentWhitespace、およびSignificantWhitespaceします。Non-content nodes include ProcessingInstruction, DocumentType, Comment, Whitespace, and SignificantWhitespace.

ノードは、空白以外のテキスト コンテンツCDATAEntityReference 、およびEndEntityします。Content nodes include non-white space text, CDATA, EntityReference , and EndEntity.
ReadSubtree 要素とそのすべての子を読み取り、新しい返すXmlReaderインスタンスに設定ReadState.Initialします。Read an element and all its children, and return a new XmlReader instance set to ReadState.Initial.

このメソッドは XML 要素の周囲に境界線を作成するために役立ちますたとえば、データを処理するための別のコンポーネントに渡すし、データの量を制限する場合、コンポーネントがアクセスできます。This method is useful for creating boundaries around XML elements; for example, if you want to pass data to another component for processing and you want to limit how much of your data the component can access.

参照してください、XmlReader.Readリファレンス ページを一度にテキスト ストリームの 1 つのノード間を移動する各ノードの種類を表示する例についてはします。See the XmlReader.Read reference page for an example of navigating through a text stream one node at a time and displaying the type of each node.

次のセクションでは、特定の種類の要素、属性などのデータを読み取る方法について説明し、型指定されたデータ。The following sections describe how you can read specific types of data, such as elements, attributes, and typed data.

読み取る XML 要素Reading XML elements

次の表は、メソッドとプロパティをXmlReader要素を処理するクラスを提供します。The following table lists the methods and properties that the XmlReader class provides for processing elements. XmlReader が 1 つの要素上に位置した後、Name などのノードのプロパティには要素の値が反映されます。After the XmlReader is positioned on an element, the node properties, such as Name, reflect the element values. 下に説明するメンバーに加えて、XmlReader クラスの任意の一般メソッドとプロパティも要素の処理に使用できます。In addition to the members described below, any of the general methods and properties of the XmlReader class can also be used to process elements. たとえば、ReadInnerXml メソッドを使用して要素のコンテンツを読むことができます。For example, you can use the ReadInnerXml method to read the contents of an element.

注意

3.1 章を参照してください、 W3C 勧告 『 XML 1.0開始タグの定義、タグ、および空要素タグを終了します。See section 3.1 of the W3C XML 1.0 Recommendation for definitions of start tags, end tags, and empty element tags.

これを使用して、XmlReaderメンバーUse this XmlReader member 終了To
IsStartElement メソッドIsStartElement method かどうか、現在のノードは開始タグまたは空要素タグを確認します。Check if the current node is a start tag or an empty element tag.
ReadStartElement メソッドReadStartElement method 現在のノードが要素であることを確認し、リーダーを次のノードに進みます (呼び出しIsStartElement続けてRead)。Check that the current node is an element and advance the reader to the next node (calls IsStartElement followed by Read).
ReadEndElement メソッドReadEndElement method 現在のノードが終了タグであることを確認し、次のノードにリーダーを進めます。Check that the current node is an end tag and advance the reader to the next node.
ReadElementString メソッドReadElementString method テキストだけの要素を読み取る。Read a text-only element.
ReadToDescendant メソッドReadToDescendant method XML リーダーを指定の名前を持つ次の子孫 (子) 要素に進めます。Advance the XML reader to the next descendant (child) element that has the specified name.
ReadToNextSibling メソッドReadToNextSibling method XML リーダーを指定した名前を持つ次の兄弟要素に進んでください。Advance the XML reader to the next sibling element that has the specified name.
IsEmptyElement プロパティIsEmptyElement property 現在の要素に終了要素タグされていることを確認します。Check if the current element has an end element tag. 次に例を示します。For example:

- <item num="123"/> (IsEmptyElementtrue)。- <item num="123"/> (IsEmptyElement is true.)
- <item num="123"> </item> (IsEmptyElementfalse要素のコンテンツは空には)。- <item num="123"> </item> (IsEmptyElement is false, although the element's content is empty.)

要素のテキスト コンテンツの読み取りの例は、次を参照してください。、ReadStringメソッド。For an example of reading the text content of elements, see the ReadString method. 次の例を使用して要素を処理する、whileループします。The following example processes elements by using a while loop.

while (reader.Read()) {
  if (reader.IsStartElement()) {
    if (reader.IsEmptyElement)
      Console.WriteLine("<{0}/>", reader.Name);
    else {
      Console.Write("<{0}> ", reader.Name);
      reader.Read(); // Read the start tag.
      if (reader.IsStartElement())  // Handle nested elements.
        Console.Write("\r\n<{0}>", reader.Name);
      Console.WriteLine(reader.ReadString());  //Read the text content of the element.
    }
  } 
} 
While reader.Read()
  If reader.IsStartElement() Then
    If reader.IsEmptyElement Then
      Console.WriteLine("<{0}/>", reader.Name)
    Else
      Console.Write("<{0}> ", reader.Name)
      reader.Read() ' Read the start tag.
      If reader.IsStartElement() Then ' Handle nested elements.
        Console.Write(vbCr + vbLf + "<{0}>", reader.Name)
      End If
      Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
    End If
  End If
End While

読み取る XML 属性Reading XML attributes

XML 属性、要素上で検出された最も一般的ですが、XML 宣言やドキュメント型ノードも許可されています。XML attributes are most commonly found on elements, but they're also allowed on XML declaration and document type nodes.

要素ノードに配置されているときに、MoveToAttributeメソッドを使用して、要素の属性の一覧を参照できます。When positioned on an element node, the MoveToAttribute method lets you go through the attribute list of the element. 後に注意してMoveToAttributeが呼び出されると、ノードのプロパティなどNameNamespaceURIPrefixその属性のプロパティを反映して、属している要素、属性のプロパティではありません。Note that after MoveToAttribute has been called, node properties such as Name, NamespaceURI, and Prefix reflect the properties of that attribute, not the properties of the element the attribute belongs to.

XmlReaderクラスには、これらのメソッドとプロパティを読み取って処理要素の属性が用意されています。The XmlReader class provides these methods and properties to read and process attributes on elements.

これを使用して、XmlReaderメンバーUse this XmlReader member 終了To
HasAttributes プロパティHasAttributes property 現在のノードが属性を持っているかどうかを確認します。Check whether the current node has any attributes.
AttributeCount プロパティAttributeCount property 現在の要素に属性の数を取得します。Get the number of attributes on the current element.
MoveToFirstAttribute メソッドMoveToFirstAttribute method 要素内の最初の属性に移動します。Move to the first attribute in an element.
MoveToNextAttribute メソッドMoveToNextAttribute method 要素に次の属性に移動します。Move to the next attribute in an element.
MoveToAttribute メソッドMoveToAttribute method 指定した属性に移動します。Move to a specified attribute.
GetAttribute メソッドまたはItem[String, String]プロパティGetAttribute method or Item[String, String] property 指定された属性の値を取得します。Get the value of a specified attribute.
IsDefault プロパティIsDefault property 現在のノードが DTD またはスキーマで定義された既定値から生成された属性であるかどうかを確認します。Check whether the current node is an attribute that was generated from the default value defined in the DTD or schema.
MoveToElement メソッドMoveToElement method 現在の属性を所有している要素に移動します。Move to the element that owns the current attribute. このメソッドを使用すると、その属性を操作した後、要素に戻ります。Use this method to return to an element after navigating through its attributes.
ReadAttributeValue メソッドReadAttributeValue method 1 つまたは複数の属性値の解析TextEntityReference、またはEndEntityノード。Parse the attribute value into one or more Text, EntityReference, or EndEntity nodes.

一般の XmlReader のメソッドとプロパティもすべて属性の処理に使用できます。Any of the general XmlReader methods and properties can also be used to process attributes. たとえば、XmlReader が属性上に位置した後、Name および Value のプロパティは、その属性の値を反映します。For example, after the XmlReader is positioned on an attribute, the Name and Value properties reflect the values of the attribute. コンテンツの Read メソッドも属性の値を取得するために使用できます。You can also use any of the content Read methods to get the value of the attribute.

この例では、AttributeCount要素のすべての属性をナビゲートするプロパティ。This example uses the AttributeCount property to navigate through all the attributes on an element.

// Display all attributes.
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  for (int i = 0; i < reader.AttributeCount; i++) {
    Console.WriteLine("  {0}", reader[i]);
  }
  // Move the reader back to the element node.
  reader.MoveToElement(); 
}
' Display all attributes.
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  Dim i As Integer
  For i = 0 To (reader.AttributeCount - 1)
    Console.WriteLine("  {0}", reader(i))
  Next i
  ' Move the reader back to the element node.
  reader.MoveToElement() 
End If

この例では、MoveToNextAttributeメソッドで、whileループを使用して、属性間を移動します。This example uses the MoveToNextAttribute method in a while loop to navigate through the attributes.

if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  while (reader.MoveToNextAttribute()) {
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  While reader.MoveToNextAttribute()
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value)
  End While
  ' Move the reader back to the element node.
  reader.MoveToElement()
End If

XML 宣言ノードの属性の読み取りReading attributes on XML declaration nodes

XML 宣言ノードでは、XML リーダーが配置されているときに、Valueプロパティは、バージョン、スタンドアロン、および 1 つの文字列としてエンコード情報を返します。When the XML reader is positioned on an XML declaration node, the Value property returns the version, standalone, and encoding information as a single string. XmlReader によって作成されたオブジェクト、Createメソッド、XmlTextReaderクラス、およびXmlValidatingReaderクラスは、バージョン、スタンドアロン、およびエンコーディング情報を属性として公開します。XmlReader objects created by the Create method, the XmlTextReader class, and the XmlValidatingReader class expose the version, standalone, and encoding items as attributes.

ドキュメント型ノードの属性の読み取りReading attributes on document type nodes

XML リーダーが、ドキュメント型ノードに配置されているときに、GetAttributeメソッドとItem[String, String]SYSTEM および PUBLIC リテラルの値を返すプロパティを使用できます。When the XML reader is positioned on a document type node, the GetAttribute method and Item[String, String] property can be used to return the values for the SYSTEM and PUBLIC literals. たとえば、reader.GetAttribute("PUBLIC") は PUBLIC の値を返します。For example, calling reader.GetAttribute("PUBLIC") returns the PUBLIC value.

処理命令ノードの属性の読み取りReading attributes on processing instruction nodes

XmlReader が処理命令ノード上に位置しているとき、Value プロパティはテキストの内容全体を返します。When the XmlReader is positioned on a processing instruction node, the Value property returns the entire text content. 処理命令ノード内の項目は、属性として扱われます。Items in the processing instruction node aren't treated as attributes. 読み取ることができませんが、GetAttributeまたはMoveToAttributeメソッド。They can't be read with the GetAttribute or MoveToAttribute method.

読み取る XML コンテンツReading XML content

XMLReader クラスには、XML ファイルからコンテンツを読み取るし、コンテンツを文字列値として返す次のメンバーが含まれています。The XMLReader class includes the following members that read content from an XML file and return the content as string values. (CLR 型を返すを参照してください、次のセクション)。(To return CLR types, see the next section.)

これを使用して、XmlReaderメンバーUse this XmlReader member 終了To
Value プロパティValue property 現在のノードのテキスト コンテンツを取得します。Get the text content of the current node. 返される値は、ノードの種類によって異なります。参照してください、Value詳細ページを参照します。The value returned depends on the node type; see the Value reference page for details.
ReadString メソッドReadString method 文字列として、要素またはテキスト ノードのコンテンツを取得します。Get the content of an element or text node as a string. このメソッドは、処理命令とコメントで停止します。This method stops on processing instructions and comments.

このメソッドが特定のノード型でどのように処理する方法の詳細については、次を参照してください。、ReadStringリファレンス ページです。For details on how this method handles specific node types, see the ReadString reference page.
ReadInnerXml メソッドおよび ReadInnerXmlAsync メソッドReadInnerXml and ReadInnerXmlAsync methods 開始と終了タグを除く、マークアップを含む、現在のノードのすべてのコンテンツを取得します。Get all the content of the current node, including the markup, but excluding start and end tags. たとえばの。For example, for:

<node>this<child id="123"/></node>

ReadInnerXml 返します。ReadInnerXml returns:

this<child id="123"/>
ReadOuterXml メソッドおよび ReadOuterXmlAsync メソッドReadOuterXml and ReadOuterXmlAsync methods 現在のノードとその子は、マークアップと開始/終了タグを含むすべてのコンテンツを取得します。Get all the content of the current node and its children, including markup and start/end tags. たとえばの。For example, for:

<node>this<child id="123"/></node>

ReadOuterXml 返します。ReadOuterXml returns:

<node>this<child id="123"/></node>

CLR 型への変換Converting to CLR types

メンバーを使用することができます、XmlReaderクラス (次の表に記載) XML データを読み取り、文字列ではなくランタイム (CLR) 型を共通言語として値を返します。You can use the members of the XmlReader class (listed in the following table) to read XML data and return values as common language runtime (CLR) types instead of strings. これらのメンバーでは、手動で解析または文字列値を変換することがなくコーディング作業に最適な表現で値を取得できます。These members enable you to get values in the representation that is most appropriate for your coding task without having to manually parse or convert string values.

  • ReadElementContentAsメソッドは、要素ノードの種類でのみ呼び出すことができます。The ReadElementContentAs methods can only be called on element node types. これらのメソッドは、子要素または混合コンテンツを含む要素では使用できません。These methods cannot be used on elements that contain child elements or mixed content. 呼ばれると、XmlReader オブジェクトは開始タグと要素コンテンツと読み、その後、終了要素タグを越えて移動します。When called, the XmlReader object reads the start tag, reads the element content, and then moves past the end element tag. 処理命令とコメントは無視され、エンティティは展開されます。Processing instructions and comments are ignored and entities are expanded.

  • ReadContentAsメソッドは、現在のリーダーの位置でテキストの内容を読み取るし、スキーマやデータ型の情報に関連付けられた、XML データを持っていない場合は、テキスト コンテンツを要求された戻り値の型に変換します。The ReadContentAs methods read the text content at the current reader position, and if the XML data doesn't have any schema or data type information associated with it, convert the text content to the requested return type. テキスト、空白、有意の空白、および CDATA セクションは連結されます。Text, white space, significant white space and CDATA sections are concatenated. 、コメントや処理命令をスキップし、エンティティ参照が自動的に解決します。Comments and processing instructions are skipped, and entity references are automatically resolved.

XmlReaderクラスによって定義されたルールを使用して、 W3C XML Schema Part 2。データ型推奨事項。The XmlReader class uses the rules defined by the W3C XML Schema Part 2: Datatypes recommendation.

これを使用して、XmlReaderメソッドUse this XmlReader method この CLR 型を取得するにはTo return this CLR type
ReadContentAsBoolean および ReadElementContentAsBooleanReadContentAsBoolean and ReadElementContentAsBoolean Boolean
ReadContentAsDateTime および ReadElementContentAsDateTimeReadContentAsDateTime and ReadElementContentAsDateTime DateTime
ReadContentAsDouble および ReadElementContentAsDoubleReadContentAsDouble and ReadElementContentAsDouble Double
ReadContentAsLong および ReadElementContentAsLongReadContentAsLong and ReadElementContentAsLong Int64
ReadContentAsInt および ReadElementContentAsIntReadContentAsInt and ReadElementContentAsInt Int32
ReadContentAsString および ReadElementContentAsStringReadContentAsString and ReadElementContentAsString String
ReadContentAs および ReadElementContentAsReadContentAs and ReadElementContentAs 指定した型、returnTypeパラメーターThe type you specify with the returnType parameter
ReadContentAsObject および ReadElementContentAsObjectReadContentAsObject and ReadElementContentAsObject 指定したとおり、最も適切な型、XmlReader.ValueTypeプロパティ。The most appropriate type, as specified by the XmlReader.ValueType property. 参照してくださいSystem.Xml クラスで型のサポートの対応付け情報。See Type Support in the System.Xml Classes for mapping information.

要素は、の形式のため、CLR 型に簡単に変換できない、スキーマ マッピングを使用して、変換に成功したことを確認できます。If an element can't easily be converted to a CLR type because of its format, you can use a schema mapping to ensure a successful conversion. 次の例では、.xsd ファイルを使用して、変換、hire-date要素をxs:date型、および、使用、ReadElementContentAsDateTimeとして要素を返すメソッドをDateTimeオブジェクト。The following example uses an .xsd file to convert the hire-date element to the xs:date type, and then uses the ReadElementContentAsDateTime method to return the element as a DateTime object.

入力 (hireDate.xml):Input (hireDate.xml):

<employee xmlns="urn:empl-hire">
    <ID>12365</ID>
    <hire-date>2003-01-08</hire-date>
    <title>Accountant</title>
</employee>

スキーマ (hireDate.xsd):Schema (hireDate.xsd):

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:empl-hire" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="employee">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ID" type="xs:unsignedShort" />
        <xs:element name="hire-date" type="xs:date" />
        <xs:element name="title" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

コード:Code:

// Create a validating XmlReader object. The schema 
// provides the necessary type information.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:empl-hire", "hireDate.xsd");
using (XmlReader reader = XmlReader.Create("hireDate.xml", settings)) {

  // Move to the hire-date element.
  reader.MoveToContent();
  reader.ReadToDescendant("hire-date");

  // Return the hire-date as a DateTime object.
  DateTime hireDate = reader.ReadElementContentAsDateTime();
  Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6));
}
' Create a validating XmlReader object. The schema 
' provides the necessary type information.
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:empl-hire", "hireDate.xsd")
Using reader As XmlReader = XmlReader.Create("hireDate.xml", settings) 
  ' Move to the hire-date element.
  reader.MoveToContent()
  reader.ReadToDescendant("hire-date")

  ' Return the hire-date as a DateTime object.
  Dim hireDate As DateTime = reader.ReadElementContentAsDateTime()
  Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6))
End Using

出力:Output:

Six Month Review Date:  7/8/2003 12:00:00 AM  

非同期プログラミングAsynchronous programming

ほとんどのXmlReaderメソッドをメソッド名の末尾に"Async"を持つ対応する非同期があります。Most of the XmlReader methods have asynchronous counterparts that have "Async" at the end of their method names. たとえば、非同期と同等のReadContentAsObjectReadContentAsObjectAsyncします。For example, the asynchronous equivalent of ReadContentAsObject is ReadContentAsObjectAsync.

非同期メソッドの呼び出しでは、次のメソッドを使用できます。The following methods can be used with asynchronous method calls:

次のセクションでは、いない対応する非同期メソッドの非同期の使用状況について説明します。The following sections describe asynchronous usage for methods that don't have asynchronous counterparts.

ReadStartElement メソッドReadStartElement method

public static async Task ReadStartElementAsync(this XmlReader reader, string localname, string ns)
{
    if (await reader.MoveToContentAsync() != XmlNodeType.Element)
    {
        throw new InvalidOperationException(reader.NodeType.ToString() + " is an invalid XmlNodeType");
    }
    if ((reader.LocalName == localname) && (reader.NamespaceURI == ns))
    {
        await reader.ReadAsync();
    }
    else
    {
        throw new InvalidOperationException("localName or namespace doesn’t match");
    }
}
<Extension()>
Public Async Function ReadStartElementAsync(reader As XmlReader, localname As String, ns As String) As Task
    If (Await reader.MoveToContentAsync() <> XmlNodeType.Element) Then
        Throw New InvalidOperationException(reader.NodeType.ToString() + " is an invalid XmlNodeType")
    End If

    If ((reader.LocalName = localname) And (reader.NamespaceURI = ns)) Then
        Await reader.ReadAsync()
    Else
        Throw New InvalidOperationException("localName or namespace doesn’t match")
    End If
End Function

ReadEndElement メソッドReadEndElement method

public static async Task ReadEndElementAsync(this XmlReader reader)
{
    if (await reader.MoveToContentAsync() != XmlNodeType.EndElement)
    {
        throw new InvalidOperationException();
    }
    await reader.ReadAsync();
}
<Extension()>
Public Async Function ReadEndElementAsync(reader As XmlReader) As task
    If (Await reader.MoveToContentAsync() <> XmlNodeType.EndElement) Then
        Throw New InvalidOperationException()
    End If
    Await reader.ReadAsync()
End Function

ReadToNextSibling メソッドReadToNextSibling method

public static async Task<bool> ReadToNextSiblingAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find the next sibling
    XmlNodeType nt;
    do
    {
        await reader.SkipAsync();
        if (reader.ReadState != ReadState.Interactive)
            break;
        nt = reader.NodeType;
        if (nt == XmlNodeType.Element &&
             ((object)localName == (object)reader.LocalName) &&
             ((object)namespaceURI ==(object)reader.NamespaceURI))
        {
            return true;
        }
    } while (nt != XmlNodeType.EndElement && !reader.EOF);
    
    return false;
}
<Extension()>
Public Async Function ReadToNextSiblingAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find the next sibling
    Dim nt As XmlNodeType
    Do

        Await reader.SkipAsync()
        If (reader.ReadState <> ReadState.Interactive) Then
            Exit Do
        End If
        nt = reader.NodeType
        If ((nt = XmlNodeType.Element) And
           ((CObj(localName) = CObj(reader.LocalName))) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    Loop While (nt <> XmlNodeType.EndElement And (Not reader.EOF))

    Return False

End Function

ReadToFollowing メソッドReadToFollowing method

public static async Task<bool> ReadToFollowingAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find element with that name
    while (await reader.ReadAsync())
    {
        if (reader.NodeType == XmlNodeType.Element && ((object)localName == (object)reader.LocalName) && ((object)namespaceURI == (object)reader.NamespaceURI))
        {
            return true;
        }
    }
    return false;
}
<Extension()>
Public Async Function ReadToFollowingAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find element with that name
    While (Await reader.ReadAsync())
        If ((reader.NodeType = XmlNodeType.Element) And
           (CObj(localName) = CObj(reader.LocalName)) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    End While

    Return False
End Function

ReadToDescendant メソッドReadToDescendant method

public static async Task<bool> ReadToDescendantAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }
    // save the element or root depth
    int parentDepth = reader.Depth;
    if (reader.NodeType != XmlNodeType.Element)
    {
        // adjust the depth if we are on root node
        if (reader.ReadState == ReadState.Initial)
        {
            parentDepth--;
        }
        else
        {
            return false;
        }
    }
    else if (reader.IsEmptyElement)
    {
        return false;
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find the descendant
    while (await reader.ReadAsync() && reader.Depth > parentDepth)
    {
        if (reader.NodeType == XmlNodeType.Element && ((object)localName == (object)reader.LocalName) && ((object)namespaceURI == (object)reader.NamespaceURI))
        {
            return true;
        }
    }
    return false;
}
<Extension()>
Public Async Function ReadToDescendantAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' save the element or root depth
    Dim parentDepth As Integer = reader.Depth
    If (reader.NodeType <> XmlNodeType.Element) Then
        ' adjust the depth if we are on root node
        If (reader.ReadState = ReadState.Initial) Then
            parentDepth -= 1
        Else
            Return False
        End If
    ElseIf (reader.IsEmptyElement) Then
        Return False
    End If
    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find the descendant
    While (Await reader.ReadAsync() And reader.Depth > parentDepth)
        If (reader.NodeType = XmlNodeType.Element And
           (CObj(localName) = CObj(reader.LocalName)) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    End While

    Return False
End Function

セキュリティの考慮事項Security considerations

使用する場合は、次を検討してください、XmlReaderクラス。Consider the following when working with the XmlReader class:

  • スローされた例外、XmlReaderたくないパス情報が満載アプリを公開できます。Exceptions thrown from the XmlReader can disclose path information that you might not want bubbled up to your app. アプリは、例外をキャッチし、適切に処理する必要があります。Your app must catch exceptions and process them appropriately.

  • サービス拒否の問題を心配している場合、または信頼されていないソースを扱う場合は、DTD 処理を有効にしません。Do not enable DTD processing if you're concerned about denial of service issues or if you're dealing with untrusted sources. 既定では DTD の処理が無効になっているXmlReaderによって作成されたオブジェクト、Createメソッド。DTD processing is disabled by default for XmlReader objects created by the Create method.

    DTD 処理を有効にした場合、XmlSecureResolver を使用して XmlReader でアクセス可能なリソースを制限できます。If you have DTD processing enabled, you can use the XmlSecureResolver to restrict the resources that the XmlReader can access. XML 処理に対するメモリと時間の制約付きようにアプリを設計することもできます。You can also design your app so that the XML processing is memory and time constrained. たとえば、ASP.NET アプリで、タイムアウト制限を構成できます。For example, you can configure time-out limits in your ASP.NET app.

  • XML データには、スキーマ ファイルなど、外部リソースへの参照が含まれることがあります。XML data can include references to external resources such as a schema file. 使用して既定では、外部リソースの解決、XmlUrlResolverユーザー資格情報のないオブジェクト。By default, external resources are resolved by using an XmlUrlResolver object with no user credentials. この点については、次のいずれかの方法でセキュリティを強化できます。You can secure this further by doing one of the following:

  • ProcessInlineSchemaProcessSchemaLocationの検証フラグをXmlReaderSettingsオブジェクトが既定で設定されていません。The ProcessInlineSchema and ProcessSchemaLocation validation flags of an XmlReaderSettings object aren't set by default. このことは、信頼できないソースからの XML データを処理する際に、スキーマ ベースの攻撃から XmlReader を保護するのに役立ちます。This helps to protect the XmlReader against schema-based attacks when it is processing XML data from an untrusted source. これらのフラグが設定されていると、XmlResolver オブジェクトの XmlReaderSettingsXmlReader のインスタンス ドキュメント中に出現したスキーマの場所を解決するために使用されます。When these flags are set, the XmlResolver of the XmlReaderSettings object is used to resolve schema locations encountered in the instance document in the XmlReader. 場合、XmlResolverプロパティに設定されてnull、スキーマの場所に解決されない場合でも、ProcessInlineSchemaProcessSchemaLocation検証フラグを設定します。If the XmlResolver property is set to null, schema locations aren't resolved even if the ProcessInlineSchema and ProcessSchemaLocation validation flags are set.

    検証を実行しているときにスキーマを追加すると新しい型が追加されるため、検証しているドキュメントの検証結果を変えることができます。Schemas added during validation add new types and can change the validation outcome of the document being validated. 結果として、信頼できるソースからの外部スキーマだけが解決されるようにする必要があります。As a result, external schemas should only be resolved from trusted sources.

    無効にすることをお勧めします。、ProcessIdentityConstraintsドキュメントの大きな部分 id 制約のあるスキーマに対する高可用性のシナリオでの信頼されていない、大きな XML ドキュメントの検証時にフラグを設定します。We recommend disabling the ProcessIdentityConstraints flag when validating untrusted, large XML documents in high availability scenarios against a schema that has identity constraints over a large part of the document. このフラグは、既定で有効です。This flag is enabled by default.

  • XML データには、処理に長時間を要する大量の属性、名前空間宣言、入れ子になった要素などが含まれることがあります。XML data can contain a large number of attributes, namespace declarations, nested elements and so on that require a substantial amount of time to process. 送信される入力のサイズを制限する、XmlReaderを実行できます。To limit the size of the input that is sent to the XmlReader, you can:

  • ReadValueChunkメソッドは、大量のデータ ストリームを処理するために使用できます。The ReadValueChunk method can be used to handle large streams of data. このメソッドは、値全体に 1 つの文字列を割り当てる代わりに、一度に少数の文字を読みます。This method reads a small number of characters at a time instead of allocating a single string for the whole value.

  • 多数の一意のローカル名、名前空間、またはプレフィックスを持つ XML ドキュメントを読み取るときに問題が発生することができます。When reading an XML document with a large number of unique local names, namespaces, or prefixes, a problem can occur. 派生したクラスを使用している場合XmlReaderを呼び出すと、 LocalNamePrefix、またはNamespaceURI各項目のプロパティは、返される文字列に追加されます、NameTableします。If you are using a class that derives from XmlReader, and you call the LocalName, Prefix, or NamespaceURI property for each item, the returned string is added to a NameTable. によって保持されているコレクション、NameTable仮想メモリをリーク文字列ハンドルのサイズが減少しないことです。The collection held by the NameTable never decreases in size, creating a virtual memory leak of the string handles. これに対する軽減策を 1 つがから派生するには、NameTableクラスおよび最大サイズ クォータを適用します。One mitigation for this is to derive from the NameTable class and enforce a maximum size quota. (使用されないようにする方法はありません、NameTableを切り替えたり、NameTable達したときに)。(There is no way to prevent the use of a NameTable, or to switch the NameTable when it is full). 別の軽減策が前述のプロパティを使用しないで、代わりに使用するには、MoveToAttributeメソッドをIsStartElementメソッドこれらのメソッドはありません文字列が返されます、あふれての問題を回避できます。 可能であれば、NameTableコレクション。Another mitigation is to avoid using the properties mentioned and instead use the MoveToAttribute method with the IsStartElement method where possible; those methods don't return strings and thus avoid the problem of overfilling the NameTable collection.

  • XmlReaderSettings オブジェクトはユーザー資格情報など、重要な情報を含むことがあります。XmlReaderSettings objects can contain sensitive information such as user credentials. 信頼できないコンポーネントが XmlReaderSettings オブジェクトとそのユーザー資格情報を使用して、XmlReader オブジェクトを作成し、データを読む可能性があります。An untrusted component could use the XmlReaderSettings object and its user credentials to create XmlReader objects to read data. キャッシュする場合は注意XmlReaderSettingsオブジェクト、または渡す場合、 XmlReaderSettings 1 つのコンポーネントからを別のオブジェクト。Be careful when caching XmlReaderSettings objects, or when passing the XmlReaderSettings object from one component to another.

  • 信頼できないソースからの NameTableXmlNamespaceManager、および XmlResolver オブジェクトなどのサポート コンポーネントは受け入れないようにします。Do not accept supporting components, such as NameTable, XmlNamespaceManager, and XmlResolver objects, from an untrusted source.

コンストラクター

XmlReader() XmlReader() XmlReader() XmlReader()

XmlReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlReader class.

プロパティ

AttributeCount AttributeCount AttributeCount AttributeCount

派生クラスでオーバーライドされると、現在のノードの属性数を取得します。When overridden in a derived class, gets the number of attributes on the current node.

BaseURI BaseURI BaseURI BaseURI

派生クラスでオーバーライドされると、現在のノードのベース URI を取得します。When overridden in a derived class, gets the base URI of the current node.

CanReadBinaryContent CanReadBinaryContent CanReadBinaryContent CanReadBinaryContent

XmlReader がバイナリ コンテンツ用の読み取りメソッドを実装するかどうかを示す値を取得します。Gets a value indicating whether the XmlReader implements the binary content read methods.

CanReadValueChunk CanReadValueChunk CanReadValueChunk CanReadValueChunk

XmlReaderReadValueChunk(Char[], Int32, Int32) メソッドを実装しているかどうかを示す値を取得します。Gets a value indicating whether the XmlReader implements the ReadValueChunk(Char[], Int32, Int32) method.

CanResolveEntity CanResolveEntity CanResolveEntity CanResolveEntity

このリーダーがエンティティを解析および解決できるかどうかを示す値を取得します。Gets a value indicating whether this reader can parse and resolve entities.

Depth Depth Depth Depth

派生クラスでオーバーライドされると、XML ドキュメント内の現在のノードの深さを取得します。When overridden in a derived class, gets the depth of the current node in the XML document.

EOF EOF EOF EOF

派生クラスでオーバーライドされると、リーダーがストリームの末尾に配置されているかどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the reader is positioned at the end of the stream.

HasAttributes HasAttributes HasAttributes HasAttributes

現在のノードに属性があるかどうかを示す値を取得します。Gets a value indicating whether the current node has any attributes.

HasValue HasValue HasValue HasValue

派生クラスでオーバーライドされると、現在のノードが Value を持つことができるかどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the current node can have a Value.

IsDefault IsDefault IsDefault IsDefault

派生クラスでオーバーライドされると、現在のノードが DTD またはスキーマで定義された既定値から生成された属性かどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the current node is an attribute that was generated from the default value defined in the DTD or schema.

IsEmptyElement IsEmptyElement IsEmptyElement IsEmptyElement

派生クラスでオーバーライドされると、現在のノードが空の要素 (<MyElement/> など) かどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the current node is an empty element (for example, <MyElement/>).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

派生クラスでオーバーライドされると、指定したインデックスの属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified index.

Item[String, String] Item[String, String] Item[String, String] Item[String, String]

派生クラスでオーバーライドされると、指定した LocalName および NamespaceURI の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified LocalName and NamespaceURI.

Item[String] Item[String] Item[String] Item[String]

派生クラスでオーバーライドされると、指定した Name の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified Name.

LocalName LocalName LocalName LocalName

派生クラスでオーバーライドされると、現在のノードのローカル名を取得します。When overridden in a derived class, gets the local name of the current node.

Name Name Name Name

派生クラスでオーバーライドされると、現在のノードの限定名を取得します。When overridden in a derived class, gets the qualified name of the current node.

NamespaceURI NamespaceURI NamespaceURI NamespaceURI

派生クラスでオーバーライドされると、リーダーが配置されているノードの名前空間 URI (W3C の名前空間の仕様における定義に準拠) を取得します。When overridden in a derived class, gets the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.

NameTable NameTable NameTable NameTable

派生クラスでオーバーライドされると、この実装に関連付けられている XmlNameTable を取得します。When overridden in a derived class, gets the XmlNameTable associated with this implementation.

NodeType NodeType NodeType NodeType

派生クラスでオーバーライドされると、現在のノードの型を取得します。When overridden in a derived class, gets the type of the current node.

Prefix Prefix Prefix Prefix

派生クラスでオーバーライドされると、現在のノードに関連付けられている名前空間プリフィックスを取得します。When overridden in a derived class, gets the namespace prefix associated with the current node.

QuoteChar QuoteChar QuoteChar QuoteChar

派生クラスでオーバーライドされると、属性ノードの値を囲むために使用する引用符文字を取得します。When overridden in a derived class, gets the quotation mark character used to enclose the value of an attribute node.

ReadState ReadState ReadState ReadState

派生クラスでオーバーライドされると、リーダーの状態を取得します。When overridden in a derived class, gets the state of the reader.

SchemaInfo SchemaInfo SchemaInfo SchemaInfo

スキーマ検証の結果、現在のノードに割り当てられているスキーマ情報を取得します。Gets the schema information that has been assigned to the current node as a result of schema validation.

Settings Settings Settings Settings

この XmlReader インスタンスを作成するために使用された XmlReaderSettings オブジェクトを取得します。Gets the XmlReaderSettings object used to create this XmlReader instance.

Value Value Value Value

派生クラスでオーバーライドされると、現在のノードのテキスト値を取得します。When overridden in a derived class, gets the text value of the current node.

ValueType ValueType ValueType ValueType

現在のノードの共通言語ランタイム (CLR) 型を取得します。Gets The Common Language Runtime (CLR) type for the current node.

XmlLang XmlLang XmlLang XmlLang

派生クラスでオーバーライドされると、現在の xml:lang スコープを取得します。When overridden in a derived class, gets the current xml:lang scope.

XmlSpace XmlSpace XmlSpace XmlSpace

派生クラスでオーバーライドされると、現在の xml:space スコープを取得します。When overridden in a derived class, gets the current xml:space scope.

メソッド

Close() Close() Close() Close()

派生クラスでオーバーライドされると、ReadStateClosed に変更します。When overridden in a derived class, changes the ReadState to Closed.

Create(Stream) Create(Stream) Create(Stream) Create(Stream)

既定の設定で指定されたストリームを使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance using the specified stream with default settings.

Create(Stream, XmlReaderSettings) Create(Stream, XmlReaderSettings) Create(Stream, XmlReaderSettings) Create(Stream, XmlReaderSettings)

指定されたストリームと設定で、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance with the specified stream and settings.

Create(Stream, XmlReaderSettings, String) Create(Stream, XmlReaderSettings, String) Create(Stream, XmlReaderSettings, String) Create(Stream, XmlReaderSettings, String)

指定されたストリーム、ベース URI、設定を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance using the specified stream, base URI, and settings.

Create(Stream, XmlReaderSettings, XmlParserContext) Create(Stream, XmlReaderSettings, XmlParserContext) Create(Stream, XmlReaderSettings, XmlParserContext) Create(Stream, XmlReaderSettings, XmlParserContext)

解析のために指定されたストリーム、設定、およびコンテキスト情報を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance using the specified stream, settings, and context information for parsing.

Create(String) Create(String) Create(String) Create(String)

指定された URI で新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance with specified URI.

Create(String, XmlReaderSettings) Create(String, XmlReaderSettings) Create(String, XmlReaderSettings) Create(String, XmlReaderSettings)

指定された URI と設定を使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified URI and settings.

Create(String, XmlReaderSettings, XmlParserContext) Create(String, XmlReaderSettings, XmlParserContext) Create(String, XmlReaderSettings, XmlParserContext) Create(String, XmlReaderSettings, XmlParserContext)

指定された URI、設定、解析するためのコンテキスト情報を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified URI, settings, and context information for parsing.

Create(TextReader) Create(TextReader) Create(TextReader) Create(TextReader)

指定されたテキスト リーダーを使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader.

Create(TextReader, XmlReaderSettings) Create(TextReader, XmlReaderSettings) Create(TextReader, XmlReaderSettings) Create(TextReader, XmlReaderSettings)

指定されたテキスト リーダーと設定を使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader and settings.

Create(TextReader, XmlReaderSettings, String) Create(TextReader, XmlReaderSettings, String) Create(TextReader, XmlReaderSettings, String) Create(TextReader, XmlReaderSettings, String)

指定されたテキスト リーダー、設定、およびベース URI を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader, settings, and base URI.

Create(TextReader, XmlReaderSettings, XmlParserContext) Create(TextReader, XmlReaderSettings, XmlParserContext) Create(TextReader, XmlReaderSettings, XmlParserContext) Create(TextReader, XmlReaderSettings, XmlParserContext)

指定したテキスト リーダー、設定、および解析するためのコンテキスト情報を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader, settings, and context information for parsing.

Create(XmlReader, XmlReaderSettings) Create(XmlReader, XmlReaderSettings) Create(XmlReader, XmlReaderSettings) Create(XmlReader, XmlReaderSettings)

指定された XML リーダーと設定を使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified XML reader and settings.

Dispose() Dispose() Dispose() Dispose()

XmlReader クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources used by the current instance of the XmlReader class.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

XmlReader によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the XmlReader and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAttribute(Int32) GetAttribute(Int32) GetAttribute(Int32) GetAttribute(Int32)

派生クラスでオーバーライドされると、指定したインデックスの属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified index.

GetAttribute(String) GetAttribute(String) GetAttribute(String) GetAttribute(String)

派生クラスでオーバーライドされると、指定した Name の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified Name.

GetAttribute(String, String) GetAttribute(String, String) GetAttribute(String, String) GetAttribute(String, String)

派生クラスでオーバーライドされると、指定した LocalName および NamespaceURI の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified LocalName and NamespaceURI.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
GetValueAsync() GetValueAsync() GetValueAsync() GetValueAsync()

現在のノードのテキスト値を非同期に取得します。Asynchronously gets the value of the current node.

IsName(String) IsName(String) IsName(String) IsName(String)

文字列引数が有効な XML 名かどうかを示す値を返します。Returns a value indicating whether the string argument is a valid XML name.

IsNameToken(String) IsNameToken(String) IsNameToken(String) IsNameToken(String)

文字列引数が有効な XML 名トークンかどうかを示す値を返します。Returns a value indicating whether or not the string argument is a valid XML name token.

IsStartElement() IsStartElement() IsStartElement() IsStartElement()

MoveToContent() を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグかどうかをテストします。Calls MoveToContent() and tests if the current content node is a start tag or empty element tag.

IsStartElement(String) IsStartElement(String) IsStartElement(String) IsStartElement(String)

MoveToContent() を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグかどうか、また、見つかった要素の Name プロパティが、指定した引数と一致するかどうかをテストします。Calls MoveToContent() and tests if the current content node is a start tag or empty element tag and if the Name property of the element found matches the given argument.

IsStartElement(String, String) IsStartElement(String, String) IsStartElement(String, String) IsStartElement(String, String)

MoveToContent() を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグかどうか、また、見つかった要素の LocalName プロパティと NamespaceURI プロパティが、指定した文字列と一致するかどうかをテストします。Calls MoveToContent() and tests if the current content node is a start tag or empty element tag and if the LocalName and NamespaceURI properties of the element found match the given strings.

LookupNamespace(String) LookupNamespace(String) LookupNamespace(String) LookupNamespace(String)

派生クラスでオーバーライドされると、現在の要素のスコープの名前空間プリフィックスを解決します。When overridden in a derived class, resolves a namespace prefix in the current element's scope.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MoveToAttribute(Int32) MoveToAttribute(Int32) MoveToAttribute(Int32) MoveToAttribute(Int32)

派生クラスでオーバーライドされると、指定したインデックスの属性に移動します。When overridden in a derived class, moves to the attribute with the specified index.

MoveToAttribute(String) MoveToAttribute(String) MoveToAttribute(String) MoveToAttribute(String)

派生クラスでオーバーライドされると、指定した Name の属性に移動します。When overridden in a derived class, moves to the attribute with the specified Name.

MoveToAttribute(String, String) MoveToAttribute(String, String) MoveToAttribute(String, String) MoveToAttribute(String, String)

派生クラスでオーバーライドされると、指定した LocalName および NamespaceURI の属性に移動します。When overridden in a derived class, moves to the attribute with the specified LocalName and NamespaceURI.

MoveToContent() MoveToContent() MoveToContent() MoveToContent()

現在のノードがコンテンツ (空白でないテキスト、CDATAElementEndElementEntityReference、または EndEntity) ノードかどうかを確認します。Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。If the node is not a content node, the reader skips ahead to the next content node or end of file. リーダーは、ProcessingInstructionDocumentTypeCommentWhitespace、または SignificantWhitespace の型のノードをスキップします。It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or SignificantWhitespace.

MoveToContentAsync() MoveToContentAsync() MoveToContentAsync() MoveToContentAsync()

現在のノードがコンテンツ ノードであるかどうかを非同期的に確認します。Asynchronously checks whether the current node is a content node. ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。If the node is not a content node, the reader skips ahead to the next content node or end of file.

MoveToElement() MoveToElement() MoveToElement() MoveToElement()

派生クラスでオーバーライドされると、現在の属性ノードを含む要素に移動します。When overridden in a derived class, moves to the element that contains the current attribute node.

MoveToFirstAttribute() MoveToFirstAttribute() MoveToFirstAttribute() MoveToFirstAttribute()

派生クラスでオーバーライドされると、最初の属性に移動します。When overridden in a derived class, moves to the first attribute.

MoveToNextAttribute() MoveToNextAttribute() MoveToNextAttribute() MoveToNextAttribute()

派生クラスでオーバーライドされると、次の属性に移動します。When overridden in a derived class, moves to the next attribute.

Read() Read() Read() Read()

派生クラスでオーバーライドされると、ストリームから次のノードを読み取ります。When overridden in a derived class, reads the next node from the stream.

ReadAsync() ReadAsync() ReadAsync() ReadAsync()

ストリームから次のノードを非同期に読み取ります。Asynchronously reads the next node from the stream.

ReadAttributeValue() ReadAttributeValue() ReadAttributeValue() ReadAttributeValue()

派生クラスでオーバーライドされると、属性値を解析して、1 つ以上の TextEntityReference、または EndEntity の各ノードに格納します。When overridden in a derived class, parses the attribute value into one or more Text, EntityReference, or EndEntity nodes.

ReadContentAs(Type, IXmlNamespaceResolver) ReadContentAs(Type, IXmlNamespaceResolver) ReadContentAs(Type, IXmlNamespaceResolver) ReadContentAs(Type, IXmlNamespaceResolver)

指定された型のオブジェクトとして内容を読み取ります。Reads the content as an object of the type specified.

ReadContentAsAsync(Type, IXmlNamespaceResolver) ReadContentAsAsync(Type, IXmlNamespaceResolver) ReadContentAsAsync(Type, IXmlNamespaceResolver) ReadContentAsAsync(Type, IXmlNamespaceResolver)

指定された型のオブジェクトとして内容を非同期に読み取ります。Asynchronously reads the content as an object of the type specified.

ReadContentAsBase64(Byte[], Int32, Int32) ReadContentAsBase64(Byte[], Int32, Int32) ReadContentAsBase64(Byte[], Int32, Int32) ReadContentAsBase64(Byte[], Int32, Int32)

コンテンツを読み取り、Base64 でデコードされたバイナリ バイトを返します。Reads the content and returns the Base64 decoded binary bytes.

ReadContentAsBase64Async(Byte[], Int32, Int32) ReadContentAsBase64Async(Byte[], Int32, Int32) ReadContentAsBase64Async(Byte[], Int32, Int32) ReadContentAsBase64Async(Byte[], Int32, Int32)

コンテンツを非同期に読み取り、Base64 でデコードされたバイナリ バイトを返します。Asynchronously reads the content and returns the Base64 decoded binary bytes.

ReadContentAsBinHex(Byte[], Int32, Int32) ReadContentAsBinHex(Byte[], Int32, Int32) ReadContentAsBinHex(Byte[], Int32, Int32) ReadContentAsBinHex(Byte[], Int32, Int32)

コンテンツを読み取り、BinHex でデコードされたバイナリ バイトを返します。Reads the content and returns the BinHex decoded binary bytes.

ReadContentAsBinHexAsync(Byte[], Int32, Int32) ReadContentAsBinHexAsync(Byte[], Int32, Int32) ReadContentAsBinHexAsync(Byte[], Int32, Int32) ReadContentAsBinHexAsync(Byte[], Int32, Int32)

コンテンツを非同期に読み取り、BinHex でデコードされたバイナリ バイトを返します。Asynchronously reads the content and returns the BinHex decoded binary bytes.

ReadContentAsBoolean() ReadContentAsBoolean() ReadContentAsBoolean() ReadContentAsBoolean()

現在の位置でテキスト コンテンツを Boolean として読み取ります。Reads the text content at the current position as a Boolean.

ReadContentAsDateTime() ReadContentAsDateTime() ReadContentAsDateTime() ReadContentAsDateTime()

現在の位置でテキスト コンテンツを DateTime オブジェクトとして読み取ります。Reads the text content at the current position as a DateTime object.

ReadContentAsDateTimeOffset() ReadContentAsDateTimeOffset() ReadContentAsDateTimeOffset() ReadContentAsDateTimeOffset()

現在の位置でテキスト コンテンツを DateTimeOffset オブジェクトとして読み取ります。Reads the text content at the current position as a DateTimeOffset object.

ReadContentAsDecimal() ReadContentAsDecimal() ReadContentAsDecimal() ReadContentAsDecimal()

現在の位置でテキスト コンテンツを Decimal オブジェクトとして読み取ります。Reads the text content at the current position as a Decimal object.

ReadContentAsDouble() ReadContentAsDouble() ReadContentAsDouble() ReadContentAsDouble()

現在の位置のテキストの内容を、倍精度浮動小数点数として読み取ります。Reads the text content at the current position as a double-precision floating-point number.

ReadContentAsFloat() ReadContentAsFloat() ReadContentAsFloat() ReadContentAsFloat()

現在の位置のテキストの内容を、単精度浮動小数点数として読み取ります。Reads the text content at the current position as a single-precision floating point number.

ReadContentAsInt() ReadContentAsInt() ReadContentAsInt() ReadContentAsInt()

現在の位置でテキストの内容を 32 ビット符号付き整数として読み取ります。Reads the text content at the current position as a 32-bit signed integer.

ReadContentAsLong() ReadContentAsLong() ReadContentAsLong() ReadContentAsLong()

現在の位置でテキストの内容を 64 ビット符号付き整数として読み取ります。Reads the text content at the current position as a 64-bit signed integer.

ReadContentAsObject() ReadContentAsObject() ReadContentAsObject() ReadContentAsObject()

現在の位置でテキスト コンテンツを Object として読み取ります。Reads the text content at the current position as an Object.

ReadContentAsObjectAsync() ReadContentAsObjectAsync() ReadContentAsObjectAsync() ReadContentAsObjectAsync()

現在の位置でテキスト コンテンツを Object として非同期に読み取ります。Asynchronously reads the text content at the current position as an Object.

ReadContentAsString() ReadContentAsString() ReadContentAsString() ReadContentAsString()

現在の位置でテキスト コンテンツを String オブジェクトとして読み取ります。Reads the text content at the current position as a String object.

ReadContentAsStringAsync() ReadContentAsStringAsync() ReadContentAsStringAsync() ReadContentAsStringAsync()

現在の位置でテキスト コンテンツを String オブジェクトとして非同期に読み取ります。Asynchronously reads the text content at the current position as a String object.

ReadElementContentAs(Type, IXmlNamespaceResolver) ReadElementContentAs(Type, IXmlNamespaceResolver) ReadElementContentAs(Type, IXmlNamespaceResolver) ReadElementContentAs(Type, IXmlNamespaceResolver)

要素の内容を要求された型として返します。Reads the element content as the requested type.

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、要素の内容を要求された型として読み込みます。Checks that the specified local name and namespace URI matches that of the current element, then reads the element content as the requested type.

ReadElementContentAsAsync(Type, IXmlNamespaceResolver) ReadElementContentAsAsync(Type, IXmlNamespaceResolver) ReadElementContentAsAsync(Type, IXmlNamespaceResolver) ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

要素の内容を要求された型として非同期に読み取ります。Asynchronously reads the element content as the requested type.

ReadElementContentAsBase64(Byte[], Int32, Int32) ReadElementContentAsBase64(Byte[], Int32, Int32) ReadElementContentAsBase64(Byte[], Int32, Int32) ReadElementContentAsBase64(Byte[], Int32, Int32)

要素を読み取り、Base64 の内容をデコードします。Reads the element and decodes the Base64 content.

ReadElementContentAsBase64Async(Byte[], Int32, Int32) ReadElementContentAsBase64Async(Byte[], Int32, Int32) ReadElementContentAsBase64Async(Byte[], Int32, Int32) ReadElementContentAsBase64Async(Byte[], Int32, Int32)

要素を非同期に読み取り、Base64 の内容をデコードします。Asynchronously reads the element and decodes the Base64 content.

ReadElementContentAsBinHex(Byte[], Int32, Int32) ReadElementContentAsBinHex(Byte[], Int32, Int32) ReadElementContentAsBinHex(Byte[], Int32, Int32) ReadElementContentAsBinHex(Byte[], Int32, Int32)

要素を読み取り、BinHex の内容をデコードします。Reads the element and decodes the BinHex content.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

要素を非同期に読み取り、BinHex の内容をデコードします。Asynchronously reads the element and decodes the BinHex content.

ReadElementContentAsBoolean() ReadElementContentAsBoolean() ReadElementContentAsBoolean() ReadElementContentAsBoolean()

現在の要素を読み取り、そのコンテンツを Boolean オブジェクトとして返します。Reads the current element and returns the contents as a Boolean object.

ReadElementContentAsBoolean(String, String) ReadElementContentAsBoolean(String, String) ReadElementContentAsBoolean(String, String) ReadElementContentAsBoolean(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Boolean オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Boolean object.

ReadElementContentAsDateTime() ReadElementContentAsDateTime() ReadElementContentAsDateTime() ReadElementContentAsDateTime()

現在の要素を読み取り、そのコンテンツを DateTime オブジェクトとして返します。Reads the current element and returns the contents as a DateTime object.

ReadElementContentAsDateTime(String, String) ReadElementContentAsDateTime(String, String) ReadElementContentAsDateTime(String, String) ReadElementContentAsDateTime(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを DateTime オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a DateTime object.

ReadElementContentAsDecimal() ReadElementContentAsDecimal() ReadElementContentAsDecimal() ReadElementContentAsDecimal()

現在の要素を読み取り、そのコンテンツを Decimal オブジェクトとして返します。Reads the current element and returns the contents as a Decimal object.

ReadElementContentAsDecimal(String, String) ReadElementContentAsDecimal(String, String) ReadElementContentAsDecimal(String, String) ReadElementContentAsDecimal(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Decimal オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Decimal object.

ReadElementContentAsDouble() ReadElementContentAsDouble() ReadElementContentAsDouble() ReadElementContentAsDouble()

現在の要素を読み込み、その内容を倍精度浮動小数点数として返します。Reads the current element and returns the contents as a double-precision floating-point number.

ReadElementContentAsDouble(String, String) ReadElementContentAsDouble(String, String) ReadElementContentAsDouble(String, String) ReadElementContentAsDouble(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を倍精度浮動小数点数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a double-precision floating-point number.

ReadElementContentAsFloat() ReadElementContentAsFloat() ReadElementContentAsFloat() ReadElementContentAsFloat()

現在の要素を読み込み、その内容を単精度浮動小数点数として返します。Reads the current element and returns the contents as single-precision floating-point number.

ReadElementContentAsFloat(String, String) ReadElementContentAsFloat(String, String) ReadElementContentAsFloat(String, String) ReadElementContentAsFloat(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を単精度浮動小数点数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a single-precision floating-point number.

ReadElementContentAsInt() ReadElementContentAsInt() ReadElementContentAsInt() ReadElementContentAsInt()

現在の要素を読み取り、その内容を 32 ビット符号付き整数として返します。Reads the current element and returns the contents as a 32-bit signed integer.

ReadElementContentAsInt(String, String) ReadElementContentAsInt(String, String) ReadElementContentAsInt(String, String) ReadElementContentAsInt(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を 32 ビット符号付き整数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 32-bit signed integer.

ReadElementContentAsLong() ReadElementContentAsLong() ReadElementContentAsLong() ReadElementContentAsLong()

現在の要素を読み取り、その内容を 64 ビット符号付き整数として返します。Reads the current element and returns the contents as a 64-bit signed integer.

ReadElementContentAsLong(String, String) ReadElementContentAsLong(String, String) ReadElementContentAsLong(String, String) ReadElementContentAsLong(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を 64 ビット符号付き整数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 64-bit signed integer.

ReadElementContentAsObject() ReadElementContentAsObject() ReadElementContentAsObject() ReadElementContentAsObject()

現在の要素を読み取り、そのコンテンツを Object として返します。Reads the current element and returns the contents as an Object.

ReadElementContentAsObject(String, String) ReadElementContentAsObject(String, String) ReadElementContentAsObject(String, String) ReadElementContentAsObject(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Object として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as an Object.

ReadElementContentAsObjectAsync() ReadElementContentAsObjectAsync() ReadElementContentAsObjectAsync() ReadElementContentAsObjectAsync()

現在の要素を非同期に読み取り、そのコンテンツを Object として返します。Asynchronously reads the current element and returns the contents as an Object.

ReadElementContentAsString() ReadElementContentAsString() ReadElementContentAsString() ReadElementContentAsString()

現在の要素を読み取り、そのコンテンツを String オブジェクトとして返します。Reads the current element and returns the contents as a String object.

ReadElementContentAsString(String, String) ReadElementContentAsString(String, String) ReadElementContentAsString(String, String) ReadElementContentAsString(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを String オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a String object.

ReadElementContentAsStringAsync() ReadElementContentAsStringAsync() ReadElementContentAsStringAsync() ReadElementContentAsStringAsync()

現在の要素を非同期に読み取り、そのコンテンツを String オブジェクトとして返します。Asynchronously reads the current element and returns the contents as a String object.

ReadElementString() ReadElementString() ReadElementString() ReadElementString()

テキストだけの要素を読み取ります。Reads a text-only element. ただし、ReadElementContentAsString() メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString() method instead, because it provides a more straightforward way to handle this operation.

ReadElementString(String) ReadElementString(String) ReadElementString(String) ReadElementString(String)

テキストだけの要素を読み取る前に、見つかった要素の Name プロパティが、指定した文字列と一致することを確認します。Checks that the Name property of the element found matches the given string before reading a text-only element. ただし、ReadElementContentAsString() メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString() method instead, because it provides a more straightforward way to handle this operation.

ReadElementString(String, String) ReadElementString(String, String) ReadElementString(String, String) ReadElementString(String, String)

テキストだけの要素を読み取る前に、見つかった要素の LocalName プロパティと NamespaceURI プロパティが、指定した文字列と一致することを確認します。Checks that the LocalName and NamespaceURI properties of the element found matches the given strings before reading a text-only element. ただし、ReadElementContentAsString(String, String) メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString(String, String) method instead, because it provides a more straightforward way to handle this operation.

ReadEndElement() ReadEndElement() ReadEndElement() ReadEndElement()

現在のコンテンツ ノードが終了タグで、リーダーを次のノードに進めることを確認します。Checks that the current content node is an end tag and advances the reader to the next node.

ReadInnerXml() ReadInnerXml() ReadInnerXml() ReadInnerXml()

派生クラスでオーバーライドされると、マークアップを含むすべての内容を文字列として読み取ります。When overridden in a derived class, reads all the content, including markup, as a string.

ReadInnerXmlAsync() ReadInnerXmlAsync() ReadInnerXmlAsync() ReadInnerXmlAsync()

マークアップを含むすべてのコンテンツを文字列として非同期に読み取ります。Asynchronously reads all the content, including markup, as a string.

ReadOuterXml() ReadOuterXml() ReadOuterXml() ReadOuterXml()

派生クラスでオーバーライドされると、このノードとそのすべての子を表す内容 (マークアップを含む) を読み取ります。When overridden in a derived class, reads the content, including markup, representing this node and all its children.

ReadOuterXmlAsync() ReadOuterXmlAsync() ReadOuterXmlAsync() ReadOuterXmlAsync()

このノードとその子を表すコンテンツをマークアップを含めて非同期に読み取ります。Asynchronously reads the content, including markup, representing this node and all its children.

ReadStartElement() ReadStartElement() ReadStartElement() ReadStartElement()

現在のノードが要素で、リーダーを次のノードに進めるかどうかを確認します。Checks that the current node is an element and advances the reader to the next node.

ReadStartElement(String) ReadStartElement(String) ReadStartElement(String) ReadStartElement(String)

現在のコンテンツ ノードが、指定した Name を持つ要素で、リーダーを次のノードに進めることを確認します。Checks that the current content node is an element with the given Name and advances the reader to the next node.

ReadStartElement(String, String) ReadStartElement(String, String) ReadStartElement(String, String) ReadStartElement(String, String)

現在のコンテンツ ノードが、指定した LocalNameNamespaceURI を持つ要素で、リーダーを次のノードに進めることを確認します。Checks that the current content node is an element with the given LocalName and NamespaceURI and advances the reader to the next node.

ReadString() ReadString() ReadString() ReadString()

派生クラスでオーバーライドされると、要素ノードまたはテキスト ノードの内容を文字列として読み取ります。When overridden in a derived class, reads the contents of an element or text node as a string. ただし、ReadElementContentAsString メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString method instead, because it provides a more straightforward way to handle this operation.

ReadSubtree() ReadSubtree() ReadSubtree() ReadSubtree()

現在のノードおよびそのすべての子孫ノードを読み取るために使用できる、新しい XmlReader インスタンスを返します。Returns a new XmlReader instance that can be used to read the current node, and all its descendants.

ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String)

指定された修飾名を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified qualified name.

ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String)

指定されたローカル名と名前空間 URI を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified local name and namespace URI.

ReadToFollowing(String) ReadToFollowing(String) ReadToFollowing(String) ReadToFollowing(String)

指定された修飾名の要素が見つかるまで読み込みます。Reads until an element with the specified qualified name is found.

ReadToFollowing(String, String) ReadToFollowing(String, String) ReadToFollowing(String, String) ReadToFollowing(String, String)

指定されたローカル名と名前空間 URI が見つかるまで要素を読み込みます。Reads until an element with the specified local name and namespace URI is found.

ReadToNextSibling(String) ReadToNextSibling(String) ReadToNextSibling(String) ReadToNextSibling(String)

指定された修飾名を使用して XmlReader を次の兄弟要素に進めます。Advances the XmlReader to the next sibling element with the specified qualified name.

ReadToNextSibling(String, String) ReadToNextSibling(String, String) ReadToNextSibling(String, String) ReadToNextSibling(String, String)

指定されたローカル名と名前空間 URI を使用して、XmlReader を次の兄弟要素に進めます。Advances the XmlReader to the next sibling element with the specified local name and namespace URI.

ReadValueChunk(Char[], Int32, Int32) ReadValueChunk(Char[], Int32, Int32) ReadValueChunk(Char[], Int32, Int32) ReadValueChunk(Char[], Int32, Int32)

XML ドキュメントに埋め込まれたテキストの大量のストリームを読み込みます。Reads large streams of text embedded in an XML document.

ReadValueChunkAsync(Char[], Int32, Int32) ReadValueChunkAsync(Char[], Int32, Int32) ReadValueChunkAsync(Char[], Int32, Int32) ReadValueChunkAsync(Char[], Int32, Int32)

XML ドキュメントに埋め込まれたテキストの大量のストリームを非同期に読み取ります。Asynchronously reads large streams of text embedded in an XML document.

ResolveEntity() ResolveEntity() ResolveEntity() ResolveEntity()

派生クラスでオーバーライドされると、EntityReference ノードのエンティティ参照を解決します。When overridden in a derived class, resolves the entity reference for EntityReference nodes.

Skip() Skip() Skip() Skip()

現在のノードの子をスキップします。Skips the children of the current node.

SkipAsync() SkipAsync() SkipAsync() SkipAsync()

現在のノードの子を非同期にスキップします。Asynchronously skips the children of the current node.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

このメンバーの説明については、Dispose() のトピックを参照してください。For a description of this member, see Dispose().

適用対象

こちらもご覧ください