c# - 如何在 C# WPF 应用程序中解析 Xml

标签 c# xml parsing

UTF 似乎不适用于我的代码。它在第 125 行说错误。

<feed>

</feed>

我已经尝试指定正在使用的 utf 但似乎不起作用

  var results = XElement.Load("games.xml")
    .Element("content.items")
    .Element("content.head")
    .Element("content.body")
    .Elements("results")
    .Elements("result");

var query = (from result in results
    let homeTeam = result.Element("home-team")
    let awayTeam = result.Element("away-team")
    let lastScorer = result.Descendants("scorers").Elements("scorer").OrderByDescending(p => (int)p.Attribute("time")).FirstOrDefault()
    select new
    {
          HomeTeam = homeTeam.Element("team-name").Value,
          AwayTeam = awayTeam.Element("team-name").Value,

          HomeTeamScore = homeTeam.Element("score").Value,
          AwayTeamScore = awayTeam.Element("score").Value,

          LastScorerName = lastScorer != null ? lastScorer.Element("player-name").Value : string.Empty,
          LastScoreTime = lastScorer != null ? (int?)lastScorer.Attribute("time") : null
    }).ToList();

最佳答案

使用 Linq To XML 让您的生活更轻松.

下面的代码可以正常工作,并且比使用低级 XmlReader 更具可读性。

假设 xml 存储在名为 games.xml 的文件中。

    var results = XElement.Load("games.xml")
        .Element("content.items")
        .Element("content.head")
        .Element("content.body")
        .Elements("results")
        .Elements("result");

    var query = (from result in results
        let homeTeam = result.Element("home-team")
        let awayTeam = result.Element("away-team")
        let lastScorer = result.Descendants("scorers").Elements("scorer").OrderByDescending(p => (int)p.Attribute("time")).FirstOrDefault()
        select new
        {
              HomeTeam = homeTeam.Element("team-name").Value,
              AwayTeam = awayTeam.Element("team-name").Value,

              HomeTeamScore = homeTeam.Element("score").Value,
              AwayTeamScore = awayTeam.Element("score").Value,

              LastScorerName = lastScorer != null ? lastScorer.Element("player-name").Value : string.Empty,
              LastScoreTime = lastScorer != null ? (int?)lastScorer.Attribute("time") : null
        }).ToList();

关于c# - 如何在 C# WPF 应用程序中解析 Xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33596791/

相关文章:

java - hibernate 未找到 hibernate.cfg.xml 文件

java - 解析 HttpServletRequest 包含 jsonp 字符串

Python:解析和分组目录中的文件名

c# - 将字符串的一部分放入数组

c# - 如何像使用 Prettier 一样在 VSC 中格式化 C#?

c# - DataMember 属性中的 WCF : [XmlElement, typeof]

java - SAX异常 : Content is not allowed in trailing section

python - 如何检查文本文件中的关键字并检索包含重复分隔符之间的关键字的多个文本段

c# - 一些 Python 函数的 .NET 等价物

c# - 无需担心超出字符串边界的简单子(monad)字符串方法?