c# - WP7 - 解析 XML 数据

标签 c# xml linq windows-phone-7

我一直使用简单的 xml 结构和简单的 xaml 绑定(bind)。现在我在尝试一些复杂的东西时有点困惑。我正在读这个WP7 How to parse the 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 绑定(bind)的东西来做到这一点。如果您有任何关于此的 WP7 教程链接,我将不胜感激。

最佳答案

WPF 有一个 XML 绑定(bind) API,但是 Silverlight for WP7 没有。我会使用 Linq to 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了解更多详情。

关于c# - WP7 - 解析 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072692/

相关文章:

c# - 数组为所有索引返回相同的值

c# - 将列表项从 c# 传递到 javascript 数组

C#:如何将鼠标悬停在一组对象上以及离开整个组时的 MouseLeave 事件

c++ - QML Qt- 解析 XML 并将其转换为 LisView 的 ListModel

java - 编写带有内存不足错误 Java 的大型 XML 文件

c# - 如何在异步等待 WEB API 中使用 FirstOrDefaultAsync()

c# - Type.GetConstructor 在 Iphone 上返回 null

xml - 解码具有相同名称但元素不同的嵌套数组

c# - 使用Linq合并一个List中某个对象的方法返回的所有List

c# - 是否可以要求 LINQ 跳过/保留特定索引?