C# 从Xml文件读取并添加到字符串列表
试图从我电脑上的XML文件中读取。该函数使用字符串值传递静态函数。我想在每个事务中创建一个所谓的“节点”。我想说数组的数组,因为我来自C++/Java背景。每一张单子上都有一张单子。交易列表,在everyone交易中,我有与该交易对应的股票代码值、动作值、日期值和股票值。这就是我目前所拥有的 XML文件C# 从Xml文件读取并添加到字符串列表,c#,xml,list,xmlreader,xmlnode,C#,Xml,List,Xmlreader,Xmlnode,试图从我电脑上的XML文件中读取。该函数使用字符串值传递静态函数。我想在每个事务中创建一个所谓的“节点”。我想说数组的数组,因为我来自C++/Java背景。每一张单子上都有一张单子。交易列表,在everyone交易中,我有与该交易对应的股票代码值、动作值、日期值和股票值。这就是我目前所拥有的 XML文件 <stocks> <transaction> <ticker>GOOG</ticker> <action>buy</action
<stocks>
<transaction>
<ticker>GOOG</ticker>
<action>buy</action>
<date>20071116</date>
<shares>44</shares>
</transaction>
<transaction>
<ticker>IBMX</ticker>
<action>buy</action>
<date>20080104</date>
<shares>350</shares>
</transaction>
谷歌
购买
20071116
44
IBMX
购买
20080104
350
C#代码
publicstaticvoidreadxml(字符串文件名)
{
XmlTextReader=新的XmlTextReader(文件名);
List transList=新列表();
XmlNode节点=
foreach(读取器()中的var事务)
{
添加(新事务(node.get ticker、node.action、node.date、node.shares)
}
公共类事务
{
公共字符串标记器{get;set;}
公共字符串操作{get;set;}
公共字符串日期{get;set;}
公共整数NumShares{get;set;}
}
私有列表getTransactionsFromFile(字符串文件名)
{
XmlDocument xDoc=新的XmlDocument();
加载(文件名);
List tranList=新列表();
foreach(xDoc中的xmlnodex)
{
如果(x.Name==“股票”)
{
foreach(x.ChildNodes中的XmlNode y)
{
如果(y.Name==“交易”)
{
Transaction=new Transaction();
foreach(y.ChildNodes中的XmlNode z)
{
如果(z.Name==“股票代码”)
{
testran.Ticker=z.InnerText;
}
如果(z.Name==“动作”)
{
testran.Action=z.InnerText;
}
如果(z.Name==“日期”)
{
testran.Date=z.InnerText;
}
如果(z.Name==“股份”)
{
testran.NumShares=int.Parse(z.InnerText);
}
如果(z.Name==“passOutputChildSteps”)
}
//将构造的事务对象添加到事务列表。。。
tranList.Add(testran);
}
}
}
}
返回列表;
}
您使用XMLDocument而不是XDocument的原因是什么?我实际上不知道XDocument,但我将来可能会尝试使用它。我之所以使用XMLDocument,是因为我有现成的示例代码。
public static void readXML(string filename)
{
XmlTextReader reader = new XmlTextReader(filename);
List<List<string>> transList = new List<List<string>>();
XmlNode node =
foreach(var transaction in reader())
{
transList.Add(new Transaction(node.get ticker,node.action,node.date,node.shares)
}
public class Transaction
{
public string Ticker {get; set;}
public string Action {get; set;}
public string Date {get; set;}
public int NumShares {get; set;}
}
private List<Transaction> getTransactionsFromFile(string filename)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load(filename);
List<Transaction> tranList = new List<Transaction>();
foreach (XmlNode x in xDoc)
{
if (x.Name == "stocks")
{
foreach (XmlNode y in x.ChildNodes)
{
if (y.Name == "transaction")
{
Transaction tempTran = new Transaction();
foreach (XmlNode z in y.ChildNodes)
{
if (z.Name == "ticker")
{
tempTran.Ticker= z.InnerText;
}
if (z.Name == "action")
{
tempTran.Action= z.InnerText;
}
if (z.Name == "date")
{
tempTran.Date = z.InnerText;
}
if (z.Name == "shares")
{
tempTran.NumShares = int.Parse(z.InnerText);
}
if (z.Name == "PassOutputToChildSteps")
}
//add the constructed Transaction Object to the Transaction List...
tranList.Add(tempTran);
}
}
}
}
return tranList;
}