我正在尝试从XML文件中获取文件位置,而不是硬编码最终可能发生变化的位置。
我不知道有多少文件会导致我的问题。
如何让这个函数迭代遍历所有节点并将它们复制到数组中的新索引?
更新
如果您不知道大小,有没有办法使用数组执行此操作,例如可能是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());
}
}
答案 0 :(得分:5)
如果您不知道尺寸,可以使用List
:
List<string> xmlNodes = new List<string>();
foreach (XmlNode node in xmlLst.ChildNodes)
{
xmlNodes.Add(node.InnerText);
}
除此之外,我建议您使用新的Linq to XML
API。
答案 1 :(得分:-1)
string[] output = xmlNodes.ToArray();