PDA

View Full Version : سوال: اصلاح attribute یک نود xml



zfarahani
دوشنبه 15 فروردین 1390, 20:41 عصر
سلام
چطوری می تونم یک attributeنود xml راتغییر دهم ودیگر attribute های دیگر رادوباره اصلاح نکنم .
یعنی به attribute مورد نظررسیدم حالا نمی دونم چطوری آن راتغییردهم وذخیره کنم .
ممنون

aserfg
سه شنبه 16 فروردین 1390, 07:29 صبح
سلام فضای نام system.xml توابعی رو برای این کار در اختیار شما می ذاره . به نمونه کدی که براتون می زارم دقت کنید
using System.Xml
private void GetConfigSettings() {
string path = Server.MapPath(".") + "\\test.xml";
string test = "Test this";
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNodeList nodeList = doc.GetElementsByTagName("myxmlelementlist");//define System.Xml.XmlElementList
XmlNodeList nodeAppSettings = nodeList[0].ChildNodes;//define System.Xml.XmlChildNodes
XmlAttributeCollection xmlAttCollection = nodeAppSettings[0].Attributes;//define System.Xml.XmlAttributeCollection
xmlAttCollection[0].InnerXml = "TestContent"; // for key attribute
xmlAttCollection[1].InnerXml = test; // for value attribute
doc.Save(path);
}

موفق باشید.

zfarahani
سه شنبه 16 فروردین 1390, 10:15 صبح
سلام
کدهای من به این صورت است به نظرشما درست است اگر درست است حالا چطوری این تغییرات را ذخیره کنم
inner_xml = (resources.SelectSingleNode("//Folder[@guid='" + HF_Selected_Node.Value + "']")).InnerXml
res_nav =res_nav.SelectSingleNode("//Folder[@guid='" + HF_Selected_Node.Value + "']//File
string old_file_url =res_nav.GetAttribute("Fileurl", res_nav.NamespaceURI
string new_file_url = Find_Real_Url(HF_New_Parent.Value) + old_file_url
inner_xml.Replace("Fileurl","Fileurl='"+new_file_url
می خواهم attribute fileurl راتغیردهم ولی ذخیره نمی شود درxml
ممنون

aserfg
سه شنبه 16 فروردین 1390, 10:23 صبح
شما بعد از انجام تغییرات باید با متد save اون رو ذخیره کنید روش درست انجام کار رو در نمونه کد بالا گذاشتم . به همون شیوه عمل کنید

zfarahani
سه شنبه 16 فروردین 1390, 18:52 عصر
ببخشیدمیشه اگرامکان داردبفرمایید که متغییرهای کدی که نوشتید چه مقادیری راذخیره می کنند؟nodeListوnodeAppSettingsوxmlAttCollect ion
ممنون