#xml #windows-phone-7
#xml #windows-phone-7
Вопрос:
В wp7 я хочу проанализировать XML-тег
.Xml :
<top>
<value name="Group A">
<team position="1" name="india" won="10" lose="5"/>
<team position="2" name="pakistan" won="5" lose="5"/>
</value>
<value name="Group B">
<team position="1" name="Aus" won="10" lose="5"/>
<team position="2" name="newzeland" won="5" lose="5"/>
</value>
</top>
я хочу выводить вот так,
Group A
1 India 10 5
2 pak 5 10
Group B
1 Aus 5 5
2 Neszeland 5 5
Я использую синтаксический анализатор следующим образом,
list = (from story in xmlTweets.Descendants("value")
select new ViewModel
{
group= story.Attribute("name").Value,
}).ToList();
list1 = (from story in xmlTweets.Descendants("team")
select new ViewModel
{
position= story.Attribute("position").Value,
name= story.Attribute("name").Value,
won= story.Attribute("won").Value,
lose= story.Attribute("lose").Value,
}).ToList();
вывод:
Group A
Group B
1 India 10 5
2 pak 5 10
1 Aus 5 5
2 Neszeland 5 5
Пожалуйста, подскажите мне какую-нибудь идею для этого.
Спасибо.
Комментарии:
1. Ваш желаемый результат выглядит для меня как ваш фактический результат… что не так?
2. @Джон, в его выводе отсутствует механизм группировки.
3. Группировки @Jon печатаются первыми после печати списка. я хочу группу и список.
4. @MagnusJohansson: Ах да, теперь я понимаю…
5. @Джон, если ты знаешь это, подскажи мне какую-нибудь идею, как это сделать.
Ответ №1:
В настоящее время у вас есть два отдельных списка — один для групп и один для команд. Мне кажется, что ваша модель представления должна быть богаче — что-то вроде:
list = xml.Descendants("value")
.Select(group => new GroupViewModel
{
Group = (string) group.Attribute("name"),
Results = group.Elements("team")
.Select(team => new TeamViewModel
{
Position = (int) team.Attribute("position"),
Name = (string) team.Attribute("name"),
Won = (int) team.Attribute("won"),
Lost = (int) team.Attribute("lose")
})
.ToList()
})
.ToList();
Комментарии:
1. что такое результаты? это строка или список?
2. @Jeeva: Это список ссылок TeamViewModel (обратите внимание на метод ToList), который должен быть в вашей модели представления. Вы ничего не сказали о том, как вы отображаете эти результаты, что затрудняет предоставление чего-либо более конкретного, чем это…
3. при возникновении этой ошибки не удается неявно преобразовать тип ‘System. Коллекции. Generic.List<ViewModel>’ в ‘строку’