【发布时间】:2019-01-06 06:42:24
【问题描述】:
我对编程和 Unity 还很陌生,我希望有人可以帮助指导我找到解决方案。
我有一个包含以下数据的 XML 文件。我想一次显示一个团队的统计数据,然后当用户单击一个按钮时,我希望脚本循环到 XML 文件中的下一个团队节点并显示该团队的信息。任何帮助将不胜感激!
<roster>
<team>
<id>0</id>
<teamname>Atlanta Seagulls</teamname>
<overall>90</overall>
<offense>74</offense>
<defense>98</defense>
</team>
<team>
<id>1</id>
<teamname>Minnesota Trees</teamname>
<overall>68</overall>
<offense>58</offense>
<defense>73</defense>
</team>
<team>
<id>2</id>
<teamname>Denver Mountains</teamname>
<overall>50</overall>
<offense>39</offense>
<defense>74</defense>
</team>
这是我的 C# 脚本。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Xml;
using UnityEngine.UI;
using System;
using System.Text;
using System.Xml;
public class LoadXML : MonoBehaviour {
public TextAsset xmlRawFile;
public Text uiText;
public int nodeCount;
public int index;
public int teamId;
public Text teamIdTest;
// Use this for initialization
void Start () {
string data = xmlRawFile.text;
parseXmlFile (data);
}
void parseXmlFile(string xmlData)
{
string totalVal = "";
XmlDocument xmlDoc = new XmlDocument ();
xmlDoc.Load (new StringReader (xmlData));
string xmlPathPattern = "//roster/team";
XmlNodeList myNodeList = xmlDoc.SelectNodes (xmlPathPattern);
nodeCount = myNodeList.Count;
for (int i = 0; i < nodeCount; i++)
{
if (i == index)
{
foreach (XmlNode node in myNodeList)
{
XmlNode id = node.FirstChild;
XmlNode teamname = id.NextSibling;
XmlNode overall = teamname.NextSibling;
XmlNode offense = overall.NextSibling;
XmlNode defense = offense.NextSibling;
teamIdTest.text = id.InnerXml;
teamId = Int32.Parse (id.InnerXml);
if (teamId == i)
{
totalVal = " Team Name: " + teamname.InnerXml + "\nOverall: " + overall.InnerXml + "\nOffense : " + offense.InnerXml + "\nNodes : " + nodeCount + "\n\n";
uiText.text = totalVal;
}
}
}
}
}
public void Swap()
{
if (index < nodeCount - 1) {
index++;
} else {
index = 0;
}
}
}
【问题讨论】:
标签: c# xml visual-studio unity3d