2012-07-27 38 views
0

我想获取XML文件的内容并将其转储到列表中。然后,我想要列表中的字符串,并使用XmlReader解析它们的数据。有没有办法做到这一点?如何使用XmlReader读取列表中的数据

我不是很熟悉的XmlReader,并没有在附近用C#的专家,但我想用这样的:

List<string>fileData = new List<string>(); 
string xmlData = "somestring"; 
XmlReader reader = XmlReader.Create(new StringReader(xmlData)); 

/* put all the data in a file into fileData */ 

foreach (string s in fileData) 
{ 
    /* use reader.WHATEVERFUNCTION I need to parse fileData for my data */ 
} 

有没有办法做到这一点?看来我必须将.Create函数放入foreach中,这意味着我每次需要使用函数时都必须创建一个新的读取器。由于许多原因,这似乎不是最好的想法。

有什么建议吗?

谢谢!

+0

你可以发布一个XML数据的样本? – 2012-07-27 13:12:56

+0

我想知道的第一件事情是如何将xml节点拆分为字符串列表......如果您有一个文件是xml文件,我个人只需将其加载到“XmlDocument”中,然后查询那。您可以使用'SelectNodes'轻松获取子节点列表,并执行任何其他您想要的数据... – Chris 2012-07-27 13:14:16

+0

xml的外观如何? – laszlokiss88 2012-07-27 13:15:00

回答

0

你应该看看System.Xml.Linq的命名空间,这实在是simplier使用: http://msdn.microsoft.com/en-us/library/bb343181.aspx

+0

嗯。 XDocument可能是要走的路。然后我可以从那里使用XmlReader。 – CKR 2012-07-27 13:25:28

+0

好的,那没用。我想我可能会尝试这样的: XDocument configData = XDocument.Load(@“myfile.xml”); XmlReader templateReader = XmlReader.Create(configData); – CKR 2012-07-27 13:30:19

1

根据您正在使用的XML:

XDocument doc = XDocument.Parse("<root><node>value1</node><node>value2</node></root>"); 
List<String> data = doc.Root.Elements().Select(e => e.Value).ToList();