• نمایش محتویات گره های XML بصورت تصادفی
    #1
    Note 
    سلام
    سی شارپ
    چند سوال دارم راجع به XML و خواندن اون توسط برنامه :
    فرض کنید یک فایل setting.xml داریم و این گره ها در فایل وجود دارند :

    کد:
    <?xml version="1.0"?>

    <setting>

    <pm>
    <question></question>
    <answer>
            <random>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </random>
    </answer>
    </pm>

    <pm>
    <question></question>
    <answer></answer>
    </pm>

    <pm>
    <question></question>
    <answer></answer>
    </pm>

    </setting>

    اول چطوری این رو توی برنامه Load کنم دوم اینکه چطوری باید به برنامه فهموند که هر سوال و جواب بینه
    کد:
    <pm></pm>
    قرار داره و هر سوال با
    کد:
    <question>
    شروع و با
    کد:
    </question>
    تمام میشه و جواب ها هم به همین صورت.
    در واقع با استفاده از
    کد:
    </pm>
    سوال و جواب ها جدا بشند
    و اگه پاسخ سوالات ار این دستور در اونها استفاده شده بود :

    کد:
            <random>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </random>

    هر li یک پاسخ به حساب بیاد و حتی کاربر بتونه به پاسخ ها اضافه کنه

    ، و این خاصیت که کاربر هم بتونه گره ها رو اضافه کنه ( یعنی اینکه بتونه
    کد:
    <pm><question></question><answer></answer></pm>
    و حتی random هم اضافه کنه

    و حساسیت به کوچک و بزرگ بودن هم نداشته باشه
    _____________
    روی فرم یک TextBox1 و یک Btn و یک LBL وجود داره
    مثلا
    الان فکر کنید که فایل XML ما این محتویات رو داره
    کد:
    <?xml version="1.0"?>

    <setting>

    <pm>
    <question>hi</question>
    <answer>
            <random>
                <li>hi</li>
                <li>hello</li>
                <li>salam</li>
                <li>slm</li>
                <li>hi there</li>
            </random>
    </answer>
    </pm>

    <pm>
    <question>سلام</question>
    <answer>سلام خوبی؟</answer>
    </pm>
    </setting>

    حالا اگه کاربر توی تکست باکس بنویسه hi و هر بار روی BTN بزنه ، به صورت Random یکی رو انتخاب و توی Lbl نشون بده
    یا مثلا وقتی بگه سلام مثله اون جواب بده


    اگه مجانی نمیشه لطفا بگید چقدر هزینه داره که کمکم کنید؟
    ممنون

    پاسخ
    #2
    Note 
    سلام
    برای اینکه یکم بهتر بشه ساختار فایل XML رو اینطوری میکنیم:

    [HTML]<Main>
    <QA>
    <question>What is your favorite color?</question>
    <answer>Blue</answer>
    <answer>Red</answer>
    <answer>Green</answer>
    <answer>Yellow</answer>
    </QA>

    <QA>
    <question>What is your favorite programming language?</question>
    <answer>C#</answer>
    <answer>Java</answer>
    <answer>Pascal</answer>
    <answer>C++</answer>
    <answer>Delphi</answer>
    <answer>VB.Net</answer>
    </QA>
    </Main>
    [/HTML]

    نیازی نیست نود اضافی بذاریم اگه نود یکی بود همیشه جواب یکیه از بیشتر بود یکیش بصورت تصادفی انتخاب میشه.

    [CSHARP]using System.Linq;
    using System.Xml.Linq;[/CSHARP]

    [CSHARP] XmlDocument xml = new XmlDocument();
    xml.Load("QA.xml");

    XmlNodeList xList = xml.SelectNodes("Main/QA");
    foreach (XmlNode xn in xList)
    {
    string Question = xn["question"].InnerText;
    if (Question == txtQ.Text)
    {
    XmlNodeList answerlist = xn.SelectNodes("./answer");
    foreach (XmlNode ans in answerlist
    .Cast<XmlNode>()
    .OrderBy(elem =>Guid.NewGuid()))
    {
    txtA.Text = ans.InnerText;
    }
    }
    }[/CSHARP]

    پاسخ
    #3
    Note 
    ممنون واقعا ممنون

    فقط اگه میشه پروژه به صورتی که گفتم بگذاربد ( یعنی حالا اگه کاربر توی تکست باکس بنویسه hi و هر بار روی BTN بزنه ، به صورت Random یکی رو انتخاب و توی Lbl نشون بده )

    آخرین ویرایش: 25-04-2013 ساعت 22:12، توسط The Arrow
    پاسخ
    ایجاد موضوع جدید   پاسخ به موضوع  

    موضوعات مرتبط با این موضوع...
    موضوع نویسنده پاسخ بازدید آخرین ارسال
    Note سی شارپ:: تولید اعداد تصادفی با کاراکترهای داده شده xMAN 0 473 09-09-2013 ساعت 15:05
    آخرین ارسال: xMAN
    Note کد تبدیل تصاویر به زبان سی شارپ SOFTAFZAR 0 476 28-01-2013 ساعت 12:42
    آخرین ارسال: SOFTAFZAR
    Note ایجاد کنترل در زمان اجرا و اختصاص رویداد برای انها SOFTAFZAR 0 498 07-12-2012 ساعت 17:04
    آخرین ارسال: SOFTAFZAR
    Note مشکل در اتصال به دیتابیس Mysql V!per 5 994 30-11-2012 ساعت 11:53
    آخرین ارسال: SOFTAFZAR
    Note بررسی اتصال به اینترنت SOFTAFZAR 0 497 09-11-2012 ساعت 22:12
    آخرین ارسال: SOFTAFZAR
    Note کد برش تصاویر در سی شارپ SOFTAFZAR 0 607 28-10-2012 ساعت 16:31
    آخرین ارسال: SOFTAFZAR
    Note کد ایجاد یک نام تصادفی برای فایل در سی شارپ SOFTAFZAR 0 489 28-10-2012 ساعت 16:01
    آخرین ارسال: SOFTAFZAR
    Note تولید اعداد تصادفی در سی شارپ؟ @EchO 1 2,315 17-09-2012 ساعت 16:00
    آخرین ارسال: SOFTAFZAR

    کاربرانِ درحال بازدید از این موضوع:   1 مهمان