プログラミング系のネタをまとめていきます。

×

XML書き込み


using System.Xml;


	string fileName = "text.xml";

	XmlWriterSettings settings = new XmlWriterSettings();
	settings.Indent = true;		// インデントあり
	settings.Encoding = Encoding.UTF8;

	XmlWriter writer = null;

	try
	{
		writer = XmlWriter.Create(fileName, settings);

		writer.WriteStartDocument();		// XMLドキュメント開始

		writer.WriteStartElement("root");	// ルート要素開始

		// 子の要素 一つ目
		writer.WriteStartElement("item");
		writer.WriteAttributeString("attr", "value");	// 属性
		writer.WriteComment("comment");		// コメント
		writer.WriteEndElement();

		// 子の要素 2つ目
		writer.WriteStartElement("item");
		writer.WriteStartElement("child");	// 更に子の要素
		writer.WriteString("child 1");		// ノード内テキスト
		writer.WriteEndElement();
		writer.WriteStartElement("child");	// 更に子の要素
		writer.WriteString("child 2");
		writer.WriteEndElement();
		writer.WriteEndElement();

		writer.WriteEndElement();		// ルート終了

		writer.WriteEndDocument();		// XMLドキュメント終了
	}
	finally
	{
		// ファイルを閉じる
		if(writer != null) writer.Close();
	}

出力結果


<?xml version="1.0" encoding="utf-8"?>
<root>
  <item attr="value">
    <!--comment-->
  </item>
  <item>
    <child>child 1</child>
    <child>child 2</child>
  </item>
</root>

XML読み込み


using System.Xml;
using System.IO;


	string fileName = "text.xml";

	XmlReader reader = null;

	try
	{
		reader = XmlReader.Create(new StreamReader(fileName));

		while (reader.Read())   // ノードを一つずつ読む
		{
			switch (reader.NodeType)
			{
			case XmlNodeType.Element:   // 要素
				Console.WriteLine("Element = {0}", reader.Name);
				if (reader.MoveToFirstAttribute())
				{
					// 要素に設定されている属性
					do
					{
						Console.WriteLine("属性 {0} = {1}", reader.Name, reader.Value);
					} while (reader.MoveToNextAttribute());
				}
				break;

			case XmlNodeType.Text:  // ノードのテキスト
				Console.WriteLine("Text = {0}", reader.Value);
				break;

			case XmlNodeType.Comment:  // ノードのコメント
				Console.WriteLine("Comment = {0}", reader.Value);
				break;

			case XmlNodeType.EndElement:    // 要素の終了タグ
				Console.WriteLine("EndElement = {0}", reader.Name);
				break;
			}
		}
	}
	finally
	{
		// XMLリーダーを終了
		if (reader != null) reader.Close();
	}

出力結果

Element = root
Element = item
属性 attr = value
Comment = comment
EndElement = item
Element = item
Element = child
Text = child 1
EndElement = child
Element = child
Text = child 2
EndElement = child
EndElement = item
EndElement = root

XML読み込み2

using System.Xml;


	string fileName = "text.xml";

	// XMLドキュメント生成
	XmlDocument xml = new XmlDocument();

	try
	{
		// XML読み込み
		xml.Load(fileName);

		// 目的のノードだけを取り出す
		XmlNodeList nodeList = xml.SelectNodes("root/item/child");

		// 全て出力
		foreach (XmlNode node in nodeList)
		{
			Console.WriteLine("name:" + node.Name);
			Console.WriteLine("text:" + node.InnerText);
		}
	}
	catch (Exception ex)
	{
		Console.WriteLine(ex.Message);
	}

出力結果

name:child
text:child 1
name:child
text:child 2
タグ

Menu

メインコンテンツ

プログラミング

機器

Macツール

各種情報

Wiki内検索

おまかせリンク

Androidアプリ

AdSense

技術書


管理人/副管理人のみ編集できます

広告募集中