PDA

View Full Version : سوال: چگونگی استخراج متن از فایل Xml توسط حلقه



golestan1
جمعه 06 فروردین 1395, 17:20 عصر
همان طور که مشخصه تعداد بسیار زیادی کلمات قرآن رو می خوام با حلقه به لیست باکس اد کنم
فقط قسمت Word entry رو می خوام استخراج کنم مانند بِسْمِ ، اللَّهِ ، الرَّحْمَنِ ، الرَّحِيمِ و تا آخرین کلمه سوره ناس پیش بره


<QuranWords>
<Word entry="بِسْمِ" root="وسم" sureh="1" aye="1" id="1">
<Subword subEntry="بِ" IsBase="0" />
<Subword subEntry="إِسْمِ" IsBase="1" />
</Word>
<Word entry="اللَّهِ" root="ءله" sureh="1" aye="1" id="2">
<Subword subEntry="اللَّهِ" IsBase="1" />
</Word>
<Word entry="الرَّحْمَنِ" root="رحم" sureh="1" aye="1" id="3">
<Subword subEntry="الْ" IsBase="0" />
<Subword subEntry="رَحْمَنِ" IsBase="1" />
</Word>
<Word entry="الرَّحِيمِ" root="رحم" sureh="1" aye="1" id="4">
<Subword subEntry="الْ" IsBase="0" />
<Subword subEntry="رَحِيمِ" IsBase="1" />
</Word>

CsharpNevisi
جمعه 06 فروردین 1395, 18:20 عصر
یه نمونه برات ضمیمه کردم .. :)

کلیت کار هم به اسن شکل هستش :

اول سورس رو درست کردم :




string xmlData = @"<QuranWords>
<Word entry='بِسْمِ' root='وسم' sureh='1' aye='1' id='1'>
<Subword subEntry='بِ' IsBase='0' />
<Subword subEntry='إِسْمِ' IsBase='1' />
</Word>
<Word entry='اللَّهِ' root='ءله' sureh='1' aye='1' id='2'>
<Subword subEntry='اللَّهِ' IsBase='1' />
</Word>
<Word entry='الرَّحْمَنِ' root='رحم' sureh='1' aye='1' id='3'>
<Subword subEntry='الْ' IsBase='0' />
<Subword subEntry='رَحْمَنِ' IsBase='1' />
</Word>
<Word entry='الرَّحِيمِ' root='رحم' sureh='1' aye='1' id='4'>
<Subword subEntry='الْ' IsBase='0' />
<Subword subEntry='رَحِيمِ' IsBase='1' />
</Word>
</QuranWords>";

بعدش یه مدل درست کردم برای لغاتم
public class QuranWords {
public string entry { get; set; }
public string root { get; set; }
public int sureh { get; set; }
public int aye { get; set; }
public int id { get; set; }
}
بعدش تو رویداد دکمم اینارو نوشتم
List<QuranWords> quranWords = new List<QuranWords>(); XmlDataDocument xmldoc = new XmlDataDocument();
xmldoc.LoadXml(xmlData);
XmlNodeList xmlnode = xmldoc.GetElementsByTagName("Word");
foreach (XmlNode xn in xmlnode)
{
quranWords.Add(new QuranWords {
entry = xn.Attributes["entry"].Value.ToString(),
root = xn.Attributes["root"].Value.ToString(),
sureh = int.Parse(xn.Attributes["sureh"].Value.ToString()),
aye = int.Parse(xn.Attributes["aye"].Value.ToString()),
id = int.Parse(xn.Attributes["id"].Value.ToString())
});
}
dataGridView1.DataSource = quranWords;
dataGridView1.Refresh();

تو خط اول یه لیستی از مدلم گرفتم
خط های بعدی هم اودم ایکس ام الو گرفتم و دونه دونه نود ها رو خوندم و لیستم خروجیمو پر کردم و در نهایت تو گرید نمایش دادم

تو به جای این خط
xmldoc.LoadXml(xmlData);
میتونی از این استفاده کتی و مستقیم ادرس فایل ایکس ام الو بدی
xmldoc.Load("D:/xmlData.xml");