如果:XElement存在,否则创建一个新的 [英] If: XElement Exists, Else Create new one

查看:178
本文介绍了如果:XElement存在,否则创建一个新的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的XML档案:


$ b

<?xml version =1.0encoding =utf-8?>
< SimpleKD>
< player name =Tardis>
<杀死> 0< /杀死>
<死亡> 0< /死亡>
< / player>
< / SimpleKD>

首先,我需要检查用户名Tardis是否存在于xml .element(player)。attribute(name)



如果没有,我需要创建它杀人和死亡为零。
如果是这样,我需要读取杀死和死亡,并将它们设置为变量。

我一直在使用 XElement

用于编写XML的代码:

  public static string username =Tardis; 
public static int kills = 0;
public static int deaths = 0;

........

XElement Players = new XElement(
SimpleKD,
new XElement(player,
new XAttribute(name,username),
new XElement(kill,kill),
new XElement(deaths,deaths)));


解决方案

假设您有一个 class:

  private static Player GetPlayer(string name,XElement simpleKD)
{
var playerElem = simpleKD.Elements(player)
.SingleOrDefault(p => p.Attribute(name)。
if(playerElem == null)
{
simpleKD.Add(new XElement(player,
new XAttribute(name,name),
new XElement(kill,0),
new XElement(deaths,0)));
返回新玩家(名字);


return new Player(name,
(int)playerElem.Element(kill),
(int)playerElem.Element(deaths) );
}


My XML File:

<?xml version="1.0" encoding="utf-8"?>
<SimpleKD>
  <player name="Tardis">
    <kills>0</kills>
    <deaths>0</deaths>
    </player>
</SimpleKD>

First off, I need to check if the username "Tardis" exists in the xml .element("player").attribute("name").

If it doesn't, i need to create it with kills and deaths at zero. If it does, I need to read kills and deaths and set them to variables.

I have been using XElement to try and do this.. Thanks!

Code used to write the XML:

public static string username = "Tardis";
public static int kills = 0;
public static int deaths = 0;

........

XElement Players = new XElement(
                      "SimpleKD",
                      new XElement("player",
                          new XAttribute("name", username),
                      new XElement("kills", kills),
                      new XElement("deaths", deaths)));

解决方案

Assuming you have a Player class:

private static Player GetPlayer(string name, XElement simpleKD)
{
    var playerElem = simpleKD.Elements("player")
                             .SingleOrDefault(p => p.Attribute("name").Value == name);
    if (playerElem == null)
    {
        simpleKD.Add(new XElement("player",
                                  new XAttribute("name", name),
                                  new XElement("kills", 0),
                                  new XElement("deaths", 0)));
        return new Player(name);
    }

    return new Player(name,
                      (int)playerElem.Element("kills"),
                      (int)playerElem.Element("deaths"));
}

这篇关于如果:XElement存在,否则创建一个新的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆