|
Поиск по XML документу - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
04.06.2012, 23:37
|
#1
|
|
|
|
Разведчик
|
Регистрация: 05.02.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Поиск по XML документу
Здравствуйте, у меня есть XML документ вот такого типа:
Код:
<Автооплата>
<задание номер="481456327">
<ответ ответ="жиз2ни"/>
</задание>
<задание номер="481345327">
<ответ ответ="жизнни"/>
</задание>
<задание номер="481321327">
<ответ ответ="жилзни"/>
</задание>
<задание номер="48139027">
<ответ ответ="жизани"/>
</задание>
<задание номер="4813127">
<ответ ответ="жизвни"/>
</задание>
<задание номер="42381327">
<ответ ответ="жизныи"/>
</задание>
</Автооплата>
2 вопроса:
1)Пользователь вводит в текстбокс номер, как по нему найти ответ?
2)Как программно добавлять сюда новые задания и ответы?
Я не прошу готовый код, мне бы узнать куда копать Но я бы не отказался от кода готового( с разьяснениями ) чтоб не смотреть в пустоту
|
|
|
05.06.2012, 17:52
|
#2
|
|
|
|
Сержант
|
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: Поиск по XML документу
Kp0c123456, вот тебе классы
Код:
[XmlRoot("Автооплата")]
public class Root
{
[XmlElement("задание")]
public List<Question> Questions { get; set; }
public Root()
{
Questions = new List<Question>();
}
}
public class Question
{
[XmlAttribute("номер")]
public int ID { get; set; }
[XmlElement("ответ")]
public Answer Answer { get; set; }
public Question()
{
}
public Question(int id, Answer answer)
{
this.ID = id;
this.Answer = answer;
}
}
public class Answer
{
[XmlAttribute("ответ")]
public string Text { get; set; }
public Answer()
{
}
public Answer(string text)
{
this.Text = text;
}
}
, вот тебе пример чтения
Код:
public Root Read(string filePath)
{
XmlSerializer deserializer = new XmlSerializer(typeof(Root));
TextReader textReader = new StreamReader(filePath);
Root obj = (Root)deserializer.Deserialize(textReader);
textReader.Close();
return obj;
}
Код:
Root someRoot = Read(@"file.xml");
foreach (Question question in someRoot.Questions)
{
listBox1.Items.Add(question.ID + "\t" + question.Answer.Text);
}
, а вот записи
Код:
public void Save(Root obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(Root));
TextWriter textWriter = new StreamWriter(@"file.xml");
serializer.Serialize(textWriter, obj);
textWriter.Close();
}
Код:
Root r = new Root();
r.Questions.Add(new Question(0, new Answer("ноль")));
r.Questions.Add(new Question(1, new Answer("один")));
r.Questions.Add(new Question(2, new Answer("два")));
r.Questions.Add(new Question(3, new Answer("три")));
Save(r);
________________
Talk is cheap. Show me the code
— Linus Torvalds
|
|
|
05.06.2012, 18:27
|
#3
|
|
|
|
Разведчик
|
Регистрация: 05.02.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Поиск по XML документу
Спасибо, сейчас буду разбираться
Добавлено через 1 час 37 минут
|
Цитата: |
|
|
|
|
|
|
|
|
|
Kp0c123456, вот тебе классы
Код:
[XmlRoot("Автооплата")]
public class Root
{
[XmlElement("задание")]
public List<Question> Questions { get; set; }
public Root()
{
Questions = new List<Question>();
}
}
public class Question
{
[XmlAttribute("номер")]
public int ID { get; set; }
[XmlElement("ответ")]
public Answer Answer { get; set; }
public Question()
{
}
public Question(int id, Answer answer)
{
this.ID = id;
this.Answer = answer;
}
}
public class Answer
{
[XmlAttribute("ответ")]
public string Text { get; set; }
public Answer()
{
}
public Answer(string text)
{
this.Text = text;
}
}
, вот тебе пример чтения
Код:
public Root Read(string filePath)
{
XmlSerializer deserializer = new XmlSerializer(typeof(Root));
TextReader textReader = new StreamReader(filePath);
Root obj = (Root)deserializer.Deserialize(textReader);
textReader.Close();
return obj;
}
Код:
Root someRoot = Read(@"file.xml");
foreach (Question question in someRoot.Questions)
{
listBox1.Items.Add(question.ID + "\t" + question.Answer.Text);
}
, а вот записи
Код:
public void Save(Root obj)
{
XmlSerializer serializer = new XmlSerializer(typeof(Root));
TextWriter textWriter = new StreamWriter(@"file.xml");
serializer.Serialize(textWriter, obj);
textWriter.Close();
}
Код:
Root r = new Root();
r.Questions.Add(new Question(0, new Answer("ноль")));
r.Questions.Add(new Question(1, new Answer("один")));
r.Questions.Add(new Question(2, new Answer("два")));
r.Questions.Add(new Question(3, new Answer("три")));
Save(r);
|
|
|
|
|
|
Вот еще 1 вопрос, там где читать я подпилял под то что мне надо, ОГРОМНОЕ спасибо, а насчет записи, код удалил все что у меня было и записал по новой.Как делать чтоб он дописывал наподобии такого кода:
Код:
<задание номер="56">
<ответ ответ="gfhjghkghk"/>
</задание>
Только в конец,потому-что твой код записи меня затролил .
Последний раз редактировалось Kp0c123456; 05.06.2012 в 20:04.
Причина: Добавлено сообщение
|
|
|
05.06.2012, 21:06
|
#4
|
|
|
|
Сержант
|
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: Поиск по XML документу
Kp0c123456, ну смотри, если у тебя уже есть XML в указанном тобой формате, считываешь его в память - получаешь экземпляр класса Root (примерно так Root someRoot = Read(@"file.xml");), этот экзмепляр имеет 1 свойство - Questions, это типизированный список List<Question> то есть работаешь с ним как с обычным списком.
например добавляешь в список так:
someRoot.Questions.Add(new Question(0, new Answer("ТЕКСТ_Ответа")));
а потом сериализируешь полученный класс при помощи метода Save, вот так:
Save(someRoot);
Думаю смысл понятен, сначала загрузил Root someRoot = Read(@"file.xml");, а потом записал Save(someRoot);
________________
Talk is cheap. Show me the code
— Linus Torvalds
|
|
|
05.06.2012, 21:45
|
#5
|
|
|
|
Разведчик
|
Регистрация: 05.02.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Поиск по XML документу
Да! Спасибо! Это то что надо! Безгранично благодарен
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Информация] Поиск игр.
|
Mephistopheles |
Игры |
8 |
26.04.2020 18:03 |
[Помогите!] Поиск lf4
|
exes |
Общение и обсуждение |
6 |
10.11.2011 14:40 |
[Помогите!] Поиск в CE
|
WOLFFF666 |
Общение и обсуждение, архив Point Blank |
0 |
29.05.2010 14:46 |
[Услуги] Поиск!
|
alex25 |
Социальные сети |
1 |
10.05.2010 08:53 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:39.
|
|