2014-09-10 115 views
1

我試圖從XML文件中獲取文件位置,而不是最終可能會更改的硬編碼位置。通過節點將XML節點轉換爲C#數組

我不知道會有多少文件會引起我的問​​題。

我怎樣才能得到這個函數遍歷所有節點,並將它們複製到數組中的新索引?

更新

有沒有辦法做到這一點使用數組,如果你不知道的大小,也許是一個ArrayList例如或者它扔成一個列表,並轉換成數組後?無論哪種方法都是最好的。

下面是我到目前爲止已經編寫的代碼:

public static void LoadMyXML() 
{ 
    string xmlfp = _AppPath + @"\Config"; 
    try 
    { 
     XmlDocument xDoc = new XmlDocument(); 
     xDoc.Load(xmlfp); 
     XmlNode xmlLst = xDoc.SelectSingleNode("parent1/child1"); 
     string[] xmlNodeArray; 

     foreach (XmlNode node in xmlLst.ChildNodes) 
     { 
      //read through and add any child nodes to the array 
      xmlNodeArray[] = node.InnerText; 
     } 
    } 
    catch(Exception ex) 
    { 
     WriteErrorToLog("XML Loading error " + ex.ToString()); 
    } 
} 

回答

5

您可以使用List,如果你不知道大小:

List<string> xmlNodes = new List<string>(); 

foreach (XmlNode node in xmlLst.ChildNodes) 
{ 
    xmlNodes.Add(node.InnerText); 
} 

除此之外,我會建議你用這個新的Linq to XML API。

+0

謝謝,正在考慮列表,但沒有真正使用陣列,所以想冒險走出我的舒適區 - 有沒有辦法做到這一點使用數組,如果你不知道大小? ArrayList的例子或查找它到一個列表並轉換爲數組後? – PurpleSmurph 2014-09-10 09:25:37

+2

您可以計算子節點並使用該計數創建數組。 – 2014-09-10 09:26:34