C# 如果数组具有父标记,则无法读取XML数组
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">
<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; }
}