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

#C

توسط thearrow در 5 سال پیش
0 557 1 5 سال پیش
thearrowc0der
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]

خوش آمدید

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

لطفا ابتدا لاگین کنید