System.Xml.XPath名前空間で XML ドキュメントを読み取る方法は 2 つあります。 1 つは、読み取り専用のXPathDocument クラスを使用して XML ドキュメントを読み取り、もう 1 つは、XmlDocument名前空間の編集可能なSystem.Xml クラスを使用して XML ドキュメントを読み取る方法です。
XPathDocument クラスを使用した XML ドキュメントの読み取り
XPathDocument クラスは、XPath データ モデルを使用して、XML ドキュメントの高速で読み取り専用のメモリ内表現を提供します。
XPathDocument クラスのインスタンスは、その 6 つのコンストラクターのいずれかを使用して作成されます。 これらのコンストラクターを使用すると、Stream、TextReader、または Stream オブジェクト、および XML ファイルへのstring
パスを使用して XML ドキュメントを読み取ります。
次の例は、 XPathDocument クラスの string
コンストラクターを使用して XML ドキュメントを読み取る方法を示しています。
Dim document As XPathDocument = New XPathDocument("books.xml")
XPathDocument document = new XPathDocument("books.xml");
XmlDocument クラスを使用した XML ドキュメントの読み取り
XmlDocument クラスは、W3C ドキュメント オブジェクト モデル (DOM) レベル 1 コアおよびコア DOM レベル 2 を実装する XML ドキュメントの編集可能なメモリ内表現です。 XmlDocument クラスのインスタンスは、その 3 つのコンストラクターのいずれかを使用して作成されます。 パラメーターなしで XmlDocument クラス コンストラクターを呼び出すことで、新しい空のXmlDocument オブジェクトを作成できます。 コンストラクターを呼び出した後、Load メソッドを使用して、、、または オブジェクトから新しい オブジェクトに XML データを読み込み、XML ファイルへの パスを読み込みます。
次の例では、パラメーターのない XmlDocument クラス コンストラクターと、 メソッドを使用して XML ドキュメントを読み取る方法を示します。
Dim document As XmlDocument = New XmlDocument()
document.Load("books.xml")
XmlDocument document = new XmlDocument();
document.Load("books.xml");
XML ドキュメントのエンコードの決定
XmlReader オブジェクトを使用して、XML ドキュメントを読み取り、前のセクションに示すようにXPathDocumentオブジェクトとXmlDocument オブジェクトを作成できます。 ただし、 XmlReader オブジェクトは、エンコードされていないデータを読み取り、その結果、エンコード情報を提供しません。
XmlTextReader クラスは、XmlReader クラスから継承し、そのEncoding プロパティを使用してエンコード情報を提供し、XPathDocument オブジェクトまたはXmlDocument オブジェクトを作成するために使用できます。
XmlTextReader クラスによって提供されるエンコード情報の詳細については、Encoding クラスのリファレンス ドキュメントのXmlTextReaderプロパティを参照してください。
XPathNavigator オブジェクトの作成
XML ドキュメントを XPathDocument オブジェクトまたは XmlDocument オブジェクトに読み取ったら、 XPathNavigator オブジェクトを作成して、基になる XML データを選択、評価、移動、および場合によっては編集できます。
XPathDocumentクラスとXmlDocument クラスの両方で、XmlNode クラスに加えて、IXPathNavigable名前空間のSystem.Xml.XPath インターフェイスを実装します。 その結果、3 つのクラスはすべて、CreateNavigator オブジェクトを返すXPathNavigator メソッドを提供します。
XPathNavigator クラスを使用した XML ドキュメントの編集
XML データの選択、評価、および移動に加えて、 XPathNavigator クラスを使用して、XML ドキュメントを作成したオブジェクトに基づいて編集することもできます。
XPathDocument クラスは読み取り専用ですが、XmlDocument クラスは編集可能であるため、XPathNavigator オブジェクトから作成されたXPathDocument オブジェクトを使用して XML ドキュメントを編集することはできませんが、XmlDocument オブジェクトから作成されたオブジェクトを編集することはできません。 XPathDocument クラスは、XML ドキュメントのみを読み取るために使用する必要があります。 XML ドキュメントを編集する必要がある場合、またはイベント処理など、 XmlDocument クラスによって提供される追加機能へのアクセスが必要な場合は、 XmlDocument クラスを使用する必要があります。
CanEdit クラスの XPathNavigator プロパティは、XPathNavigator オブジェクトが XML データを編集できるかどうかを指定します。
次の表では、各クラスの CanEdit プロパティの値について説明します。
IXPathNavigable 実装 | CanEdit 値 |
---|---|
XPathDocument | false |
XmlDocument | true |
こちらも参照ください
.NET