XmlDocument.Load メソッド (XmlReader)
指定した XmlReader から XML ドキュメントを読み込みます。
Overloads Public Overridable Sub Load( _
ByVal reader As XmlReader _)
[C#]
public virtual void Load(XmlReaderreader);
[C++]
public: virtual void Load(XmlReader* reader);
[JScript]
public function Load(
reader : XmlReader);
パラメータ
- reader
XML データをドキュメントに送るために使用される XmlReader 。
例外
例外の種類 | 条件 |
---|---|
XmlException | XML 内に読み込みエラーまたは解析エラーがあります。この場合、ドキュメントは空のままです。 |
解説
メモ Load メソッドは、有意な空白を常に保存します。 PreserveWhitespace プロパティは、空白が保存されるかどうかを決定します。既定値は false で、空白は保存されません。
リーダーが初期状態にある場合、つまり ReadState =ReadState.Initial の場合、Load はリーダーの内容全体を使用して、検出結果から DOM を構築します。
リーダーが深さ "n"のあるノード上に既に配置されている場合、このメソッドは、そのノードおよび深さ "n" で閉じている終了タグまでのすべての後続の兄弟を読み込みます。結果は次のとおりです。
現在のノードとその兄弟が次の例に類似する場合、
<!--comment--><element1>one</element1><element2>two</element2>
1 つのドキュメントに 2 つのルート レベル要素を設定することはできないため、Load は例外をスローします。現在のノードとその兄弟が次の例に類似する場合、
<!--comment--><?process instruction?><!--comment--></endtag>
Load は成功しますが、ルート レベルの要素がないため、結果は不完全な DOM ツリーになります。ドキュメントを保存する前に、ルート レベルの要素を追加する必要があります。追加しない場合は、 Save は例外をスローします。
リーダーが、空白や属性ノードなど、ドキュメントのルート レベルには無効なリーフ ノードに配置されている場合、リーダーは、ルートとして使用できるノード上に配置されるまで読み込みを続けます。ドキュメントは、この時点で読み込みを開始します。
このメソッドは、DTD 検証またはスキーマ検証を実行しません。検証を実行する場合は、 XmlValidatingReader を渡し、適切な XmlValidatingReader.ValidationType を指定し、 XmlValidatingReader.ValidationEventHandler を提供する必要があります。読み込み中に見つかったすべての検証エラーが通知されますが、 ValidationEventHandler が例外をスローして処理を中止する場合を除き、ドキュメントは読み込まれます。読み込み時検証の例については、「 XmlDocument 」を参照してください。
このメソッドは、ドキュメント オブジェクト モデル (DOM: Document Object Model) に対する Microsoft 拡張機能です。
使用例
[Visual Basic, C#, C++] books.xml ファイルの最後の book ノードを XML ドキュメントに読み込む例を次に示します。
Option Explicit
Option Strict
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
'Load the the document with the last book node.
Dim reader As New XmlTextReader("books.xml")
reader.WhitespaceHandling = WhitespaceHandling.None
reader.MoveToContent()
reader.Read()
reader.Skip() 'Skip the first book.
reader.Skip() 'Skip the second book.
doc.Load(reader)
doc.Save(Console.Out)
End Sub 'Main
End Class 'Sample
[C#]
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
//Load the the document with the last book node.
XmlTextReader reader = new XmlTextReader("books.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;
reader.MoveToContent();
reader.Read();
reader.Skip(); //Skip the first book.
reader.Skip(); //Skip the second book.
doc.Load(reader);
doc.Save(Console.Out);
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
//Create the XmlDocument.
XmlDocument* doc = new XmlDocument();
//Load the the document with the last book node.
XmlTextReader* reader = new XmlTextReader(S"books.xml");
reader->WhitespaceHandling = WhitespaceHandling::None;
reader->MoveToContent();
reader->Read();
reader->Skip(); //Skip the first book.
reader->Skip(); //Skip the second book.
doc->Load(reader);
doc->Save(Console::Out);
}
[Visual Basic, C#, C++] この例では、入力として、 books.xml というファイルを使用しています。
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
[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
参照
XmlDocument クラス | XmlDocument メンバ | System.Xml 名前空間 | XmlDocument.Load オーバーロードの一覧 | System.Xml.Schema.ValidationEventArgs | System.Xml.Schema.XmlSeverityType | XmlValidatingReader.Schemas