.NET Framework SDK の XmlDocument クラスを使用して XML を変更および保存する方法

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
この資料では、次の .NET Framework クラス ライブラリの名前空間を参照しています。
  • System.XML
概要
このサンプルでは、XmlDocument クラスを使用して XML を更新および保存する方法について説明します。

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。
  • Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server、Windows NT 4.0 Server のいずれか
  • Microsoft Visual Studio .NET
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • XML の用語
  • XML ファイルの作成と読み取り
  • ドキュメント オブジェクト モデル (DOM)

XmlDocument クラスを使用して XML を保存する方法

  1. Visual Studio .NET で新しい Visual Basic コンソール アプリケーションまたは C# コンソール アプリケーションを作成します。
  2. プロジェクトが System.Xml 名前空間を参照していることを確認します。
  3. Xml 名前空間で Imports ステートメントを使用して、後続のコードで XmlTextReader 宣言の修飾を省略できるようにします。Imports ステートメントは、その他の宣言を行う前に使用する必要があります。
    Visual Basic .NET のコード
    Imports System.Xml
    C# のコード
    using System.Xml;
  4. 新しい XmlDocument クラスを作成し、Load メソッドを使用して読み込みます。

    XmlDocument クラスは XML ドキュメントを表します。このクラスには Load メソッドがあり、ファイル、ストリーム、または XmlReader からドキュメントを読み込みます。

    Visual Basic .NET のコード
    Dim myXmlDocument as XmlDocument = new XmlDocument()myXmlDocument.Load("books.xml")
    C# のコード
    XmlDocument myXmlDocument = new XmlDocument();myXmlDocument.Load("books.xml");
    ここでは Books.xml ファイルが使用されていますが、独自の Books.xml ファイルを作成することもできます。また、Visual Studio .NET および .NET Framework Software Development Kit (SDK) には、サンプルの Books.xml ファイルが含まれています。
  5. XmlNode オブジェクトには、ノードを操作するためのメソッドとプロパティが用意されています。XML ノードを操作するには、XmlDocument の DocumentElement プロパティによって返される XmlNode オブジェクトを使用します。
    Visual Basic .NET のコード
    Dim node as XmlNodenode = myXmlDocument.DocumentElement
    C# のコード
    XmlNode node;node = myXmlDocument.DocumentElement;
  6. ドキュメント要素の子を繰り返し処理し、すべての "price" ノードを検出します。Node オブジェクトの ChildNodes プロパティに関して For Each ループ構文を使用して、Name プロパティが "price" であるすべてのノードを検出します。以下の Visual Basic .NET のコードでは、その書籍の価格を 2 倍にします。C# のコードでは、価格を 20% 増にします。
    Visual Basic .NET のコード
    Dim node2 As XmlNode 'Used for internal loop.Dim nodePriceText As XmlNodeFor Each node In node.ChildNodes   'Find the price child node.   For Each node2 In node.ChildNodes      If node2.Name = "price" Then         '                    nodePriceText = node2.InnerText         Dim price As Decimal         price = System.Decimal.Parse(node2.InnerText)         ' Double the price.         Dim newprice As String         newprice = CType(price * 2, Decimal).ToString("#.00")         Console.WriteLine("Old Price = " & node2.InnerText & Strings.Chr(9) & "New price = " & newprice)         node2.InnerText = newprice      End If   NextNext
    C# のコード
    foreach(XmlNode node1 in node.ChildNodes)   foreach (XmlNode node2 in node1.ChildNodes)      if (node2.Name == "price")         {            Decimal price = Decimal.Parse(node2.InnerText);            // Increase all the book prices by 20%            String newprice = ((Decimal)price*(new Decimal(1.20))).ToString("#.00");            Console.WriteLine("Old Price = " + node2.InnerText + "\tNew price = " + newprice);            node2.InnerText = newprice;          }
  7. XmlDocument クラスの Save メソッドを使用して、変更された XML を InflatedPriceBooks.xml という新しいファイルに保存します。

    Save メソッドを使用すると、XML データをファイル、ストリーム、および XmlWriters に保存できます。
    Visual Basic .NET のコード
    myXmlDocument.Save("InflatedPriceBooks.xml")
    C# のコード
    myXmlDocument.Save("InflatedPriceBooks.xml");
  8. プロジェクトをビルドして実行します。
関連情報
詳細については、次の Web サイトを参照してください。
dotnet xml
プロパティ

文書番号:301233 - 最終更新日: 12/06/2015 03:16:24 - リビジョン: 6.5

Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.1, Microsoft .NET Framework クラス ライブラリ 1.0, Microsoft .NET Framework クラス ライブラリ 1.1

  • kbnosurvey kbarchive kbhowtomaster KB301233
フィードバック