Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果数组具有父标记,则无法读取XML数组_C#_Xml_Unity3d - Fatal编程技术网

C# 如果数组具有父标记,则无法读取XML数组

C# 如果数组具有父标记,则无法读取XML数组,c#,xml,unity3d,C#,Xml,Unity3d,XML文件: <AttackPattern> <AttackPatternLeft> <Pattern> <Player Id="GK"> <PositionX>0.0</PositionX> <PositionY>0.0</PositionY> </Player> <Player Id="DL">

XML文件:

<AttackPattern>
  <AttackPatternLeft>
    <Pattern>
      <Player Id="GK">
        <PositionX>0.0</PositionX>
        <PositionY>0.0</PositionY>
      </Player>
      <Player Id="DL">
        <PositionX>0.0</PositionX>
        <PositionY>1.0</PositionY>
      </Player>
      <Player Id="DR">
        <PositionX>0.0</PositionX>
        <PositionY>2.0</PositionY>
      </Player>
      <Player Id="MDFL">
        <PositionX>0.0</PositionX>
        <PositionY>3.0</PositionY>
      </Player>
      <Player Id="MDFR">
        <PositionX>0.0</PositionX>
        <PositionY>4.0</PositionY>
      </Player>
    </Pattern>
  </AttackPatternLeft>
</AttackPattern>
我需要在这里写些什么,以便通过接近AttackPatternLeft的子数组或元素在XML中前进

    //[XmlElement("AttackPatternLeft")]
    [XmlArray("Pattern")]
    [XmlArrayItem("Player")]
    public List<Team> listTeam = new List<Team> ();

    // Use this for initialization
    public static TeamContainer Load(string path) 
    {

        TextAsset lobjTextAssetXML = Resources.Load<TextAsset>(path);
        XmlSerializer serializer = new XmlSerializer (typeof(TeamContainer));

        StringReader reader = new StringReader (lobjTextAssetXML.text);
        TeamContainer lobjTeamContainer = serializer.Deserialize (reader) as TeamContainer;

        reader.Close();

        return lobjTeamContainer;
    }
}
}


如果我从XML文件中删除标记
,我可以读取XML中的模式数组,但当我将模式数组作为
元素的子元素时,无法读取它,您将必须使用以下一组类:

[XmlRoot("AttackPattern")]
public class TeamContainer
{
    public AttackPatternLeft AttackPatternLeft { get; set; }
}

public class AttackPatternLeft
{
    [XmlArray("Pattern")]
    [XmlArrayItem("Player")]
    public List<Player> Team { get; set; }
}

public class Player
{
    public decimal PositionX { get; set; }
    public decimal PositionY { get; set; }
    [XmlAttribute]
    public string Id { get; set; }
}
[XmlRoot(“攻击模式”)]
公共类TeamContainer
{
公共攻击模式左攻击模式左{get;set;}
}
左公共类攻击
{
[XmlArray(“模式”)]
[XmlArrayItem(“玩家”)]
公共列表团队{get;set;}
}
公开课选手
{
公共十进制位置x{get;set;}
公共十进制位置y{get;set;}
[XmlAttribute]
公共字符串Id{get;set;}
}

您必须使用以下一组类:

[XmlRoot("AttackPattern")]
public class TeamContainer
{
    public AttackPatternLeft AttackPatternLeft { get; set; }
}

public class AttackPatternLeft
{
    [XmlArray("Pattern")]
    [XmlArrayItem("Player")]
    public List<Player> Team { get; set; }
}

public class Player
{
    public decimal PositionX { get; set; }
    public decimal PositionY { get; set; }
    [XmlAttribute]
    public string Id { get; set; }
}
[XmlRoot(“攻击模式”)]
公共类TeamContainer
{
公共攻击模式左攻击模式左{get;set;}
}
左公共类攻击
{
[XmlArray(“模式”)]
[XmlArrayItem(“玩家”)]
公共列表团队{get;set;}
}
公开课选手
{
公共十进制位置x{get;set;}
公共十进制位置y{get;set;}
[XmlAttribute]
公共字符串Id{get;set;}
}

您是否遇到异常情况?如果将TeamContainer的实例序列化为XML(模式集合包含一些数据),那么生成的XML文件是否采用上述格式?(可能验证所有可序列化属性上的所有属性是否正确?)不,我没有收到任何异常错误。当阵列有父标记时,我无法获取阵列。如果我删除了这一行,我就可以读取XML了……这是我的其他文件代码,用于加载和显示在上面的问题中添加的XML。是否有异常?如果将TeamContainer的实例序列化为XML(模式集合包含一些数据),那么生成的XML文件是否采用上述格式?(可能验证所有可序列化属性上的所有属性是否正确?)不,我没有收到任何异常错误。当阵列有父标记时,我无法获取阵列。如果我删除这一行,我就可以读取XML了……下面是我的其他文件代码,用于加载和显示在上面的问题注释中添加的XML
[XmlRoot("AttackPattern")]
public class TeamContainer
{
    public AttackPatternLeft AttackPatternLeft { get; set; }
}

public class AttackPatternLeft
{
    [XmlArray("Pattern")]
    [XmlArrayItem("Player")]
    public List<Player> Team { get; set; }
}

public class Player
{
    public decimal PositionX { get; set; }
    public decimal PositionY { get; set; }
    [XmlAttribute]
    public string Id { get; set; }
}