XMLを読み込んで、タグ名と値からDictionaryを作っておくと便利な場合がある。この方法について。
サンプルXML
<?xml version="1.0" encoding="utf-8"?> <works> <title>リップヴァンウィンクルの花嫁</title> <director>岩井俊二</director> <company>ロックウェルアイズ</company> <year>2016</year> </works>
XMLからDicionaryに変換するコード
下の通り。
XMLのトップ階層を読み込んで、いったん、KeyValuePairを作成する。
その後、KeyValuePairをDictionaryへ変換する。
という手順。
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using System.Xml.Linq; namespace XOOMS.IO { public class XMLDictionary : MonoBehaviour { [SerializeField] string xmlFileName = "pairs.xml"; // Use this for initialization void Start() { //相対パスから環境に応じて絶対パスを取得する XDocument xdoc = XDocument.Load(FileUtil.GetFullPathFromRelative(xmlFileName)); //トップ階層の要素を取り出す IEnumerable<KeyValuePair<string, string>> keyvaluepairs = xdoc.Root.Elements() //KeyValuePairを作成する .Select(x => new KeyValuePair<string, string> ( x.Name.LocalName, x.Value )); //KeyValuePairからDictionaryへ変換 Dictionary<string, string> dict = keyvaluepairs.ToDictionary(x => x.Key, x => x.Value); foreach (var d in dict) { Debug.Log(string.Format("{0}:{1}", d.Key, d.Value)); } } } }