2012-01-31 4 views
3

Я всегда работал с легкими структурами xml и простыми привязками xaml. Теперь я немного смущен, пытаясь найти сложный материал. Я читал этот вопрос WP7 How to parse the XML? и его ответы, но я не мог понять отображение части данных.WP7 - Анализ данных XML

У меня есть аналогичные XML-данных, как это:

<?xml version="1.0"?> 
<top> 
    <value name="Finals"> 
     <country home="sweden" away="italy" venue="aaa"/> 
    </value> 
    <value name="Semi-finals"> 
     <country home="Germany" away="sweden" venue="ccc"/> 
     <country home="france" away="italy" venue="ddd"/> 
    </value> 
</top> 

И результат я хочу видеть, является:

Finals 
- Sweden - Italy in AAA 

Semi-finals 
- Germany - France in ccc 
- France - Sweden in ddd 

Есть ли способ сделать это с Xaml связывающим материалом. Если у вас есть ссылки на учебники WP7 об этом, я был бы благодарен.

ответ

1

WPF имеет API привязки XML, однако Silverlight для WP7 этого не делает. Я бы использовал Linq для XML, чтобы создать строку, которой вы пользуетесь.

Что-то, как это должно работать ...

NL = System.Environment.NewLine; 

doc = XDocument.Parse(xml); 
StringBuilder output = new StringBuilder(); 

var rounds = doc.Descendants("value"); 
foreach(XElement round in rounds) 
{ 
    builder.Append(round.Attribute("value").Value + NL); 
    foreach(XElement country in round.Elements()) 
    { 
    builder.Append(country.Attribute("home").Value); 
    builder.Append(" - "); 
    builder.Append(country.Attribute("away").Value); 
    builder.Append(" in "); 
    builder.Append(country.Attribute("venue").Value); 
    builder.Append(NL); 
    } 
} 

Смотрите MSDN documentation for Linq to XML для более подробной информации.

+0

Теперь я вижу это более четко. Спасибо, Колин – FrankCap

Смежные вопросы