2012-07-27 69 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();