xml は注目のテクノロジーです。人々の興味を引く主な理由の 1 つは、非常にシンプルであり、人々が簡単に理解して使用できることです。すべてのプログラマは、XML ファイルを簡単に読み取り、そこに含まれる内容を理解できます。
.NET には XML をサポートするクラスが多数含まれており、これらのクラスにより、プログラマは XML ファイルを理解するのと同じくらい簡単に XML プログラミングを使用できます。この記事では、そのようなクラスである XmlTextWriter クラスの使用例を示します。
XmlTextWriter クラスを使用すると、XML をファイルに書き込むことができます。このクラスには、XML の処理を容易にする多くのメソッドとプロパティが含まれています。このクラスを使用するには、まず新しい XmlTextWriter オブジェクトを作成する必要があります。その後、このオブジェクトに XML フラグメントを追加できます。このクラスには、さまざまなタイプの XML 要素を XML ファイルに追加するためのメソッドが多数含まれています。次の表に、これらのメソッドの名前と説明を示します。
メソッド
説明
WriteStartDocument
書き込みバージョンは「1.0」 XML 宣言です。開いている要素または属性を閉じる
Close
ストリームを閉じる
WriteDocType
指定された名前とオプションの属性を使用して DOCTYPE 宣言を作成する
WriteStartElement
指定された開始タグを作成する
WriteEndElement
要素を閉じる
WriteFullEndElement
を閉じます要素を作成し、常に完全な終了タグを書き込みます
WriteElementString
文字列値を含む要素を書き込みます
WriteStartAttribute
属性の開始コンテンツを書き込みます
WriteEndAttribute
Close WriteStartAttribute 呼び出し
WriteRaw
生のタグを手動で書き込みます
文字列の書き込み
文字列を書き込みます
WriteAttributeString
指定された値を含む属性を書き込みます
WriteCData
指定されたテキストを含む ブロック
WriteComment
指定されたテキストを含むコメントを書き込みます
WriteWhiteSpace
指定された空白を書き込みます
WritePROcessingstruction
名前とテキストの間に指定されたテキストを含むコメントを書き込みます スペースの処理命令は次のとおりです:
XML に精通していれば、上記のメソッドをよく理解できるでしょう。以下に例を示します。この例では、最初にドキュメントを作成し、いくつかの要素を追加してからドキュメントを閉じます。要素を追加した後、サブ要素、属性、その他のコンテンツを追加することもできます。次のコードはその例で、title という名前の XML ファイルを作成します。
using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlTextWriter writer = new XmlTextWriter("titles.xml", null); //写入根元素 writer.WriteStartElement("items"); //加入子元素 writer.WriteElementString("title", "Unreal Tournament 2003"); writer.WriteElementString("title", "C&C: Renegade"); writer.WriteElementString("title", "Dr. Seuss's ABC"); //关闭根元素,并书写结束标签 writer.WriteEndElement(); //将XML写入文件并且关闭XmlTextWriter writer.Close(); } }
<items> <title>Unreal Tournament 2003</title> <title>C&C: Renegade</title> <title>Dr. Seuss's ABC</title> </items>
上記のコードは、writer という名前の XmlTextWriter オブジェクトを作成します。このオブジェクトが作成されると、titles.xml という名前のファイルに関連付けられます。次に、プログラムは items というルート プロパティを作成し、WriteStartElement メソッドがこのプロパティの開始タグを作成します。次に、プログラムは WriteElementString メソッドを呼び出して 3 つの子要素を作成します。上記のコードから、このメソッドが最初のパラメーター (上記のプログラムではタイトル) を要素のラベルとして使用し、2 番目のパラメーターを要素の値として使用していることもわかります。すべての要素を追加したら、ルート要素を閉じる必要があります。この時点で、WriteEndElement メソッドを呼び出して、最後に開いた要素を閉じることができます。この場合、最後に開いた要素はルート要素です。すべてのデータが書き込まれ、ルート要素が閉じられたら、情報を XmlTextWriter に渡すことができます。これは、この時点で Close メソッドを呼び出してそれを閉じることができることを意味します。
using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlTextWriter writer = new XmlTextWriter("myMedia.xml", null); //使用自动缩进便于阅读 writer.Formatting = Formatting.Indented; //书写根元素 writer.WriteStartElement("items"); //开始一个元素 writer.WriteStartElement("item"); //向先前创建的元素中添加一个属性 writer.WriteAttributeString("rating", "R"); //添加子元素 writer.WriteElementString("title", "The Matrix"); writer.WriteElementString("format", "DVD"); //关闭item元素 writer.WriteEndElement(); // 关闭元素 //在节点间添加一些空格 writer.WriteWhitespace("\n"); //使用原始字符串书写第二个元素 writer.WriteRaw("<item>" + "<title>BloodWake</title>" + "<format>XBox</format>" + "</item>"); //使用格式化的字符串书写第三个元素 writer.WriteRaw("\n <item>\n" + " <title>Unreal Tournament 2003</title>\n" + " <format>CD</format>\n" + " </item>\n"); // 关闭根元素 writer.WriteFullEndElement(); //将XML写入文件并关闭writer writer.Close(); } }
<item rating="R"> <title>The Matrix</title> <format>DVD</format> </item> <item> <title>BloodWake</title> <format>XBox</format> </item> <item> <title>Unreal Tournament 2003</title> <format>CD</format> </item> </items>
上記のコードのコメントは、このプログラムの機能がどのように実装されるかを説明しています。 。覚えておくべきことの 1 つは、メソッドを呼び出して操作を開始するとき、プログラム内の適切な場所でメソッドを呼び出して操作を終了する必要があるということです。たとえば、StartElement を呼び出す場合は、EndElement を呼び出して要素を閉じる必要があります。もちろん、これら 2 つの呼び出しの間に子要素を追加することもできます。 EndElement メソッドを呼び出すと、常に StartElement メソッドを使用して最後に開かれた要素が閉じられます (これはスタックの動作とよく似ています)。
XmlTextWriter の使用は非常に簡単ですが、これらのコードとメソッドを自分で試してみることをお勧めします。一度試してみると、コードをプログラムに簡単に統合できることがわかります。また、XmlTextWriter は .NET が提供する多くの XML クラスの 1 つにすぎないことも覚えておく必要があります。 XmlTextWriter と同様に、他の XML クラスも非常に使いやすいです
上記は、.NET で XML を記述する簡単な方法の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。