im создание окна приложения, в котором у меня есть одна метка для отображения вопроса и одно текстовое поле для ответа на соответствующий вопрос. 3 кнопка для проверки ответа с моим xml-файлом и одной кнопкой для следующей вопрос и одна кнопка для предыдущего вопроса.проверить несколько данных с моим xml-файлом
это мой XML-файл
<?xml version="1.0" encoding="utf-8" ?>
<Exam>
<Question number="1" Text="What is IL Code">
<Answer Text="Half compiled, Partially compiled code"> </Answer>
</Question>
<Question number="2" Text="What is JIT">
<Answer Text="IL code to machine language"> </Answer>
</Question>
<Question number="3" Text="What is CLR">
<Answer Text="Heart of the engine , GC , compilation , CAS(Code access security) , CV (Code verification)"> </Answer>
</Question>
</Exam>
теперь нажатия кнопки я хочу, чтобы проверить пользовательский ответ с моей XML-ответ и эту часть я сделал, но небольшая проблема когда это первый вопрос, который является то, что это иль код для этого мой код работает правильно, и когда вопрос изменен, мой код не может принять второй вопрос каждый раз, когда он принимает первый вопрос и сравнивается с этим, так как я могу это достичь? ниже мой отрезала код
string[] arrUserAnswer = textBox1.Text.Trim().ToLower().Split(' ');
do
{
XmlReader reader = XmlReader.Create(@"E:\ferozProject\WindowsFormsApplication1\WindowsFormsApplication1\QuestionFile.xml");
reader.Read();
reader.ReadToFollowing("Question");
reader.MoveToContent();
que = reader.GetAttribute("Text");
reader.ReadToFollowing("Answer");
reader.MoveToContent();
string[] arrXMLAnswer = reader.GetAttribute("Text").ToString().Trim().ToLower().Split(' ');
List<string> lststr1 = new List<string>();
if (label2.Text == que)
{
abc = 1;
foreach (string nextStr in arrXMLAnswer)
{
if (Array.IndexOf(arrUserAnswer, nextStr) != -1)
{
lststr1.Add(nextStr);
}
}
if (lststr1.Count > 0)
{
label4.Visible = true;
label4.Text = "Your Answer is " + ((100 * lststr1.Count)/arrXMLAnswer.Length).ToString() + "%" + "Correct";
}
else
{
textBox1.Text = "0 %";
}
}
else
{
reader.ReadToNextSibling("Question");
}
} while (abc <= 0);
abc = 0;
я также использовал второй другой способ для этого, но в котором код не удалось выяснить, на мой вопрос, как из-за я написал вопрос внутри узла вопроса, ниже моего другой код.
XmlDocument docQuestionList = new XmlDocument();// Set up the XmlDocument //
docQuestionList.Load(@"E:\ferozProject\WindowsFormsApplication1\WindowsFormsApplication1\QuestionFile.xml"); //Load the data from the file into the XmlDocument //
XmlNodeList QuestionList = docQuestionList.SelectNodes("Exam/Question");
foreach (XmlNode nodexm in QuestionList)
{
string obj = nodexm.SelectNodes("Text").ToString();
if (obj == label2.Text)
{
string[] arrUserAnswer = textBox1.Text.Trim().ToLower().Split(' ');
string[] arrXMLAnswer = nodexm.NextSibling.InnerText.Trim().ToLower().Split(' ');
List<string> lststr1 = new List<string>();
foreach (string nextStr in arrXMLAnswer)
{
if (Array.IndexOf(arrUserAnswer, nextStr) != -1)
{
lststr1.Add(nextStr);
}
}
if (lststr1.Count > 0)
{
label4.Text = "Your Answer is " + ((100 * lststr1.Count)/arrXMLAnswer.Length).ToString() + "%" + "Correct";
}
else
{
textBox1.Text = "0 %";
}
}
}
, пожалуйста, помогите мне в одном методе
Пожалуйста, не редактируйте свой вопрос, чтобы задать совершенно другой вопрос. –