PDA

View Full Version : مبتدی: چگونه مقدار یک فیلد را در چند فایل xml تغییر دهم.



sayan
سه شنبه 18 بهمن 1390, 20:20 عصر
سلام دوستان گرامی .

من 300 فایل xml دارم که نام آنها براساس نام کاربری + تاریخ جاری سیستم می باشد.

ساختار تمام این فایل های یکی می باشد. من میخوام در این 300 فایل تگی مثلاً با نام place می باشد که دارای مقدار tehran می باشد را مثلاً به مقدار shirza تغییر بدهم.

شما چه راه حلی را پیشنهاد می کنید ؟

آیا برنامه های xml editor میتوانند این کار را انجام دهند یا برنامه های جستجو گر یا باید یک کد اختصاصی نوشت ؟

با تشکر از راهنمایی شما.:تشویق:

mehdi.mousavi
سه شنبه 23 اسفند 1390, 14:39 عصر
سلام.
اگر فرض کنیم که فایل های XML شما، در D:\ قرار دارند، Extension اونها XML باشه و بخواهیم اینکارو با استفاده از C#‎ انجام بدیم و XML امون چنین ساختاری داشته باشه:

<?xml version="1.0" encoding="utf-8"?>
<records>
<record>
<place>Tehran</place>
</record>
<record>
<place>Tabriz</place>
</record>
</records>

اونوقت می تونیم براحتی با این function در هر 300 تا فایل تگ place ای value اش Tehran هستش رو پیدا کنیم و اون مقدار رو با Shiraz عوض کرده، فایل رو Overwrite کنیم:


private void ReplaceTag()
{
string[] filenames = Directory.GetFiles("d:\\", "*.xml", SearchOption.TopDirectoryOnly);
foreach (string filename in filenames)
{
XDocument doc = XDocument.Load(filename);
XElement elm = doc.XPathSelectElement("//records/record/place[text()=\"Tehran\"]");
if (elm != null)
{
elm.Value = "Shiraz";
doc.Save(filename);
}
}
}


فراموش نکنید System.Xml.XPath namespace رو نیز به لیست using ها اضافه کنید.

موفق باشید.