【发布时间】:2020-10-31 09:37:18
【问题描述】:
我是 c# 的新手,因此我希望你们中的一些人可以帮助我解决这个问题:
我有一个包含多个节点和属性的长 XML 文件。我正在寻找一种关于如何遍历 XML 文档的方法,同时能够设置一种方法来提取某些感兴趣的属性,然后将这些属性存储在一个数组中(目标是之后通过存储在集合中来可视化它们)。
我尝试过多种方式来解决这个问题,例如使用 get Xpath、deserialization 等等,不幸的是它们都没有成功,尤其是 <TeamData> 出现不止一次。
XML 文件如下所示:
- <SoccerFeed TimeStamp="20190818T190845+0100">
- <SoccerDocument Type="Result" detail_id="1" uID="f1059230">
- <MatchData>
- <TeamData Formation="433" Score="2" Side="Home" TeamRef="t239">
<Booking Card="Yellow" CardType="Yellow" EventID="6020960" EventNumber="1141" Min="13"
Period="FirstHalf" PlayerRef="p112340" Reason="Foul" Sec="31" Time="14"
TimeStamp="20190818T171443+0100" uID="b239-1" />
</TeamData>
- <TeamData TeamRef="t401" Side="Away" Score="1" Formation="433">
<Booking TimeStamp="20190818T182120+0100" uID="b401-1" Period="SecondHalf" Time="64"
Sec="15" Reason="Foul" PlayerRef="p229218" Min="63" EventNumber="2648"
EventID="708326435" CardType="Yellow" Card="Yellow"/>
</TeamData>
</MatchData>
</SoccerDocument
这是我目前的想法:
int totalC;
XmlDocument xmlDoc = new XmlDocument();
string XMLpath = Directory.GetCurrentDirectory() +
@"File.xml";
xmlDoc.Load(XMLpath);
XmlNodeList Clist = xmlDoc.GetElementsByTagName("TimeStamp");
totalC = Clist.Count;
for (int i = 0; i < Clist.Count; i++)
{
Console.WriteLine(Clist[i].InnerText.ToString());
}
Console.WriteLine(Environment.NewLine);
Console.WriteLine(totalC.ToString() + " hello");
Console.ReadLine();
希望我的问题足够清楚,提前谢谢!
【问题讨论】: