سوال در مورد Split کردن یک XML

بازدید36kپست ها1آخرین فعالیت10 سال پیش
0
0

میخواستم بدونم که چطوری یک XML رو میشه SPLIT کرد ؟فرض کنید این ایکس ام الی هست که داریم :

<block id='pashmak'><item jid='1@localhost' /><item jid='2@localhost' /><item jid='3@localhost' /><item jid='4@localhost' /><item jid='5@localhost' /></block>

خب من اومدم این کار و کردم :

[CSHARP]
if(xml.IndexOf("id='pashmak'") >=0)
{
string m = xml.Substring(xml.IndexOf("<item jid='") + 11) m = m.Substring(0,m.IndexOf("' />") - 0)
listBox1.Items.Add(m);
}
[/CSHARP]

خب اینجوری فقط یک آیتم رو نشون میده ، اگه من بخوام کل آیتم ها رو نشون بده چیکار باید انجام بدم ؟(محدودیتی در نشون دادن اآیتم نداشته باشه) یا اگه شما راه حله بهتری دارید بگید

یک سوال دیگه ، چطوری آیتم های یک ListBox رو توی یک پیام نشون بدم (تعداد COunt نه ! خودشون رو میگم )

ممنون

0

ساختار فایل xml درست نیست
[CSHARP]
if (xml.Text.IndexOf("id='pashmak'") >= 0)
{

            int i = xml.Text.IndexOf("<item jid='",xml.SelectionStart + xml.SelectionLength) + 11;
            if (i > -1)
            {
                xml.SelectionStart = i;
                xml.SelectionLength = 11;
                listBox1.Items.Add(xml.SelectedText);
            }
        }

[/CSHARP]

ساختار و روش درست:

<block id='pashmak'>
<item>1@localhost</item>
<item>2@localhost</item>
<item>3@localhost</item>
<item>100@localhost</item>
<item>200@localhost</item>
<item>100@localhost</item>
</block>

[CSHARP]
XDocument doc = XDocument.Parse(xml.Text);
var names = doc.Root.Descendants("item").Nodes();
listBox1.Items.AddRange(names.ToArray());
[/CSHARP]

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.