2012-01-31 101 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有一个XML绑定API,但WP7的Silverlight没有。我会用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 2012-01-31 09:56:49