PDA

View Full Version : سوال: استخراج اطلاعات از فایل Xml در C#



pooya_1868
پنج شنبه 19 آبان 1390, 13:15 عصر
سلام به همگی

من احتیاج دارم که یه سری اطلاعات از فایل xml بخونم و در طول برنامه برخی از اون ها رو دستکاری کنم
فرضا که فایل من به صورت زیر باشه :

- <Controls>
- <label1>
<Font style="Regular" size="8.25">Microsoft Sans Serif</Font>
<backcolor>-1250856</backcolor>
</label1>
- <textBox1>
<Font style="Regular" size="8.25">Microsoft Sans Serif</Font>
<backcolor>-16777216</backcolor>
</textBox1>
</Controls>

من چه طور میتونم به مقادیری که دادم دسترسی پیدا کنم؟ مثلا مقدار style و size که Attribute تعریف شدن یا مقدار بین تگ backcolor ?

مرســــــــی از دوستان

pooya_1868
شنبه 21 آبان 1390, 12:49 عصر
سلام

من تونستم با استفاده از کلاس XPathDocument و XPathNavigator و دستور SelectSingleNode به مقادیر بین تگ ها دسترسی پیدا کنم ولی هر کاری میکنم نمیتونم به Attribute هایی که تعریف کردم دسترسی پیدا کنم ....

خواهشا اگر میتونید کمکم کنید....

سوداگر
دوشنبه 30 آبان 1390, 10:37 صبح
من هم برای خواندن Attribute ها، سایت msdn و CodeProject را زیر و رو کردم و چیزی عایدم نشد. ای کاش در تالار #C مطرحش میکردی

اما میتونی به جای استفاده از Attribute، مثلا به جای:

<Font style="Regular" size="8.25">Microsoft Sans Serif</Font>
از این کد استفاده کنی:

<Font>
<Font.Style>Regular<Font.Style/>
<Font.Size>8.25<Font.Size/>
<Font.Name>Microsift Sans Serif<Font.Name>
<Font/>

mehdi.mousavi
چهارشنبه 02 آذر 1390, 15:57 عصر
سلام.
می تونید بدین شکل عمل کنید:

string xml = "<Controls><label1><Font style=\"Regular\" size=\"8.25\">Microsoft Sans Serif</Font><backcolor>-1250856</backcolor></label1><textBox1><Font style=\"Regular\" size=\"8.25\">Microsoft Sans Serif</Font><backcolor>-16777216</backcolor></textBox1></Controls>";
var elements = XElement.Parse(xml).XPathSelectElements("//*/Font").Select(fnt => new
{
Style = fnt.Attribute("style").Value,
Size = fnt.Attribute("size").Value,
Name = fnt.Value
});

foreach (var element in elements)
{
string name = element.Name;
string size = element.Size;
string style = element.Style;
}


موفق باشید.