XDocument
を利用して、XMLファイルを編集、保存する方法を掲載します。
サンプル XML
<?xml version="1.0" encoding="utf-8" ?> <users> <user user_uid="hoge" user_name="hoge" email="" application_name="" comment="" password="foobar" password_question="" password_answer="" is_approved="true" last_activity_date="2014/04/01 12:00:00" last_login_date="2014/04/05 12:00:00" last_password_changed_date="2014/04/01 12:00:00" creation_date="2014/04/01 12:00:00" is_online="false" is_lockedout="false" last_lockedout_date="0001/01/01 00:00:00" failed_password_attempt_count="" failed_password_attempt_window_start="" failed_password_answer_count="" failes_password_answer_window_start="" /> </users>
サンプル コード
using System; using System.Linq; using System.Xml; using System.Xml.Linq; public override void UpdateUser(MembershipUser user) { // ファイルパス var filepath = @"C:\xxx.xml"; // XMLファイル読み込み var xdoc = XDocument.Load(filepath ); // LINQで選択 var target = (from item in xdoc.Descendants("user") where item.Attribute("user_uid").Value == user.ProviderUserKey.ToString() select item).Single(); // 情報の更新 target.SetAttributeValue("user_name", user.UserName); target.SetAttributeValue("email", user.Email); target.SetAttributeValue("comment", user.Comment); target.SetAttributeValue("is_approved", user.IsApproved); target.SetAttributeValue("is_lockedout", user.IsLockedOut); target.SetAttributeValue("is_online", user.IsOnline); target.SetAttributeValue("last_activity_date", user.LastActivityDate); target.SetAttributeValue("last_lockedout_date", user.LastLockoutDate); target.SetAttributeValue("last_login_date", user.LastLoginDate); // ファイル書き込み設定 var setting = new XmlWriterSettings() { NewLineChars = Environment.NewLine, Indent = true, NewLineOnAttributes = true, OmitXmlDeclaration = false }; // ファイルへオブジェクトを書き込み(シリアライズ) using (var writer = XmlWriter.Create(filepath, setting)) { xdoc.Save(writer); } }
関連記事
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!